Criação de Conectores: mudanças entre as edições

De EAPn
Ir para navegação Ir para pesquisar
Sem resumo de edição
 
Linha 64: Linha 64:


==Exemplo==
==Exemplo==
O exemplo a seguir segue os passos presentes nesse link: https://documentation.bonitasoft.com/bonita/2022.1/process/connector-archetype-tutorial
Neste exemplo, vamos criar um conector para se comunicar com a API de Star Wars. Ele receberá um nome de personagem de Star Wars e retornará detalhes sobre esse personagem.
Neste exemplo, vamos criar um conector para se comunicar com a API de Star Wars. Ele receberá um nome de personagem de Star Wars e retornará detalhes sobre esse personagem.
Veremos então como implantar esse conector nos pacotes do Github para instalá-lo como uma extensão no Bonita Studio de qualquer lugar.
Veremos então como implantar esse conector nos pacotes do Github para instalá-lo como uma extensão no Bonita Studio de qualquer lugar.

Edição atual tal como às 17h12min de 8 de junho de 2022

Conectores são pontos de extensão que podem ser adicionados a um processo para estender os recursos do Bonita Runtime. Eles são um pedaço de código com entradas definidas como Expressões e saídas definidas como Operações.

Instalando as ferramentas[editar]

Deve-se instalar o Java JDK e Maven na sua máquina.
Maven 3.3+ requer JDK 1.7 ou mais recente.
Abra o terminal Linux (Debian) e execute as seguintes linhas de código:


Instalando OpenJDK[editar]

 sudo apt update 
 sudo apt install default-jdk 

Verifique a instalação do OpendJDK com:

java -version

A saída deve ser algo do tipo:
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

Maven[editar]

 wget https://www-us.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz -P /tmp 
 sudo tar xf /tmp/apache-maven-*.tar.gz -C /opt 
 sudo ln -s /opt/apache-maven-3.6.3 /opt/maven 
 sudo nano /etc/profile.d/maven.sh 

export JAVA_HOME=/usr/lib/jvm/default-java
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}


 sudo chmod +x /etc/profile.d/maven.sh 
 source /etc/profile.d/maven.sh 
 mvn -version 


 Maven home: /opt/maven

Java version: 11.0.7, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-26-generic", arch: "amd64", family: "unix"


Fazendo o build[editar]

  mvn archetype:generate \
 -DarchetypeGroupId=org.bonitasoft.archetypes \
 -DarchetypeArtifactId=bonita-rest-api-extension-archetype

Ao executar esse comando, é iniciado o processo de criar a REST API, especificando atributos conforme as perguntas aparecem no terminal. Siga as instruções para cada campo:

  • GroupId e package: digitar org.bonitasoft.archetypes
  • ArtifactId: bonita-rest-api-extension-(qualquer coisa aqui) Não tenho certeza se precisa desse texto em específico ou se pode ser quaisquer palavras separadas por -
  • Version: 1.0-SNAPSHOT Altera o número da versão como preferir
  • BonitaVersion: É a technical Id da versão, verificar qual a technicalId da sua versão abrindo o bonita studio, indo em Help e clicando em sobre
  • Linguagem: Groovy, java ou kotlin, kotlin está dando erro no momento(05/2022)
  • PathTemplate: qualquer coisa desde que seja separado por hífen, exemplo: miguel-thiago-tomas
  • HttpVerb: a função desejada da REST API, a lista das funções aparece no terminal
  • DisplayName: qualquer nome
  • ApiName: nome da sua REST API

Exemplo[editar]

O exemplo a seguir segue os passos presentes nesse link: https://documentation.bonitasoft.com/bonita/2022.1/process/connector-archetype-tutorial Neste exemplo, vamos criar um conector para se comunicar com a API de Star Wars. Ele receberá um nome de personagem de Star Wars e retornará detalhes sobre esse personagem. Veremos então como implantar esse conector nos pacotes do Github para instalá-lo como uma extensão no Bonita Studio de qualquer lugar. O primeiro passo é gerar o projeto maven usando o arquétipo: mvn archetype:generate \

   -DarchetypeGroupId=org.bonitasoft.archetypes \
   -DarchetypeArtifactId=bonita-connector-archetype

Com essas informações:

  • groupId: com.company.connector
  • artifactId: connector-starwars
  • version: 1.0.0
  • package: com.company.connector
  • bonitaVersion: [Technichal Bonita id] (ex: 7.13.0)
  • className: ConnectorStarWars
  • language: groovy
  • wrapper: true

Adicione as seguintes propriedades e dependências às existentes no pom.xml:
<properties>

   <retrofit.version>2.9.0</retrofit.version>
   <logging-interceptor.version>3.11.0</logging-interceptor.version>
   <converter-jackson.version>2.4.0</converter-jackson.version>
   <mockwebserver.version>3.14.8</mockwebserver.version>

</properties>

<dependencies>

   <dependency>
       <groupId>com.squareup.retrofit2</groupId>
       <artifactId>retrofit</artifactId>
       <version>${retrofit.version}</version>
   </dependency>
   <dependency>
       <groupId>com.squareup.okhttp3</groupId>
       <artifactId>logging-interceptor</artifactId>
       <version>${logging-interceptor.version}</version>
   </dependency>
   <dependency>
       <groupId>com.squareup.retrofit2</groupId>
       <artifactId>converter-jackson</artifactId>
       <version>${converter-jackson.version}</version>
       <exclusions>
           <exclusion>
               <groupId>com.fasterxml.jackson.core</groupId>
               <artifactId>jackson-databind</artifactId>
           </exclusion>
       </exclusions>
   </dependency>
   <dependency>
       <groupId>com.squareup.okhttp3</groupId>
       <artifactId>mockwebserver</artifactId>
       <version>${mockwebserver.version}</version>
       <scope>test</scope>
   </dependency>

</dependencies>

Definindo input do conector[editar]

As entradas do conector são definidas na definição do conector. Abra o arquivo src/main/resourcesources-filteredrces/connector-starwars.def Primeiro vamos criar duas entradas para o conector:

  • Um nome de entrada, que conterá o nome de um personagem de Star Wars
  • Um URL de entrada, que conterá o URL do servidor de API (portanto, se o URL do servidor de API mudar no futuro, o serviço ainda poderá ser usado).

Remova a entrada padrão da definição e inclua as duas entradas a seguir:
<input mandatory="true" name="name" type="java.lang.String"/>
<input mandatory="true" name="url" type="java.lang.String" defaultValue="http://swapi.dev/"/>
Então vamos criar uma página e dois widgets para essas entradas. Páginas e widgets são usados ​​pelo Bonita Studio para criar uma interface de usuário a partir da definição do conector.

Substitua a página padrão pela seguinte:
<page id="starWarsPage">

   <widget xsi:type="definition:Text" id="nameWidget" inputName="name"/>
   <widget xsi:type="definition:Text" id="urlWidget" inputName="url"/>

</page>
Para cada página e widget, um nome e uma descrição devem ser incluídos no arquivo de propriedades, caso contrário o Studio não poderá exibir o elemento. Abra o arquivo src/main/resources-filtered/connector-starwars.properties e substitua o conteúdo da página e widgets padrão pelo seguinte:
starWarsPage.pageTitle=Star Wars connector - configuration page
starWarsPage.pageDescription=Indicate a Star Wars character name, and the service base URl if required.
nameWidget.label=Character name
nameWidget.description=The name of the character to retrieve
urlWidget.label=URL
urlWidget.description=The service base url

Criar o serviço Retrofit e o modelo[editar]