Gerando um .jar a partir de um Custom Interceptor Java
O primeiro passo da criação de um Custom Interceptor Java é a criação de um projeto Java.
Neste caso, criaremos um projeto Maven.
Dentro dele, vamos configurar e instalar a dependência interceptor-java-spec
, que pode ser obtida nesta página.
É possível subir qualquer biblioteca externa? Não, mas é possível usar qualquer lib entre as dependências suportadas pelo API gateway. Você pode acessar a lista de dependências suportadas aqui. |
pom.xml
Este é um exemplo de pom.xml
retirado de um dos repositórios de exemplos sobre Custom Java Interceptor.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sensedia</groupId>
<artifactId>custom-java-example</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>custom-java-example</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<interceptor-java-spec.version>3.0.1</interceptor-java-spec.version>
<maven-install-plugin.version>3.0.0-M1</maven-install-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.sensedia</groupId>
<artifactId>api-interceptor-java-spec</artifactId>
<version>${interceptor-java-spec.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven-install-plugin.version}</version>
<configuration>
<groupId>com.sensedia</groupId>
<artifactId>api-interceptor-java-spec</artifactId>
<version>${interceptor-java-spec.version}</version>
<packaging>jar</packaging>
<file>${basedir}/src/main/resources/api-interceptor-java-spec-${interceptor-java-spec.version}.jar</file>
<generatePom>true</generatePom>
</configuration>
<executions>
<execution>
<id>install-jar-lib</id>
<goals>
<goal>install-file</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.jar</exclude>
</excludes>
</resource>
</resources>
</build>
<developers>
<developer>
<name>Claudenir Freitas</name>
<email>claudenir.machado@sensedia.com</email>
<organization>Sensedia</organization>
<organizationUrl>https://sensedia.com</organizationUrl>
</developer>
</developers>
</project>
A dependência interceptor-java-spec deve estar dentro da pasta src/main/resources .
Além disso, sua versão deve ser informada no pom.xml por meio da tag <interceptor-java-spec.version> .
|
Por fim, instale a dependência com o seguinte comando:
mvn validate
Custom Interceptor
Com o projeto e dependências configuradas, os interceptores poderão ser escritos e compilados. Segue abaixo um exemplo:
package com.sensedia.CustomJavaExample;
import com.sensedia.interceptor.externaljar.annotation.ApiSuiteInterceptor;
import com.sensedia.interceptor.externaljar.annotation.InterceptorMethod;
import com.sensedia.interceptor.externaljar.dto.ApiCallData;
@ApiSuiteInterceptor
public class Fluxo01 {
@InterceptorMethod
public void setarHeaderRequest(ApiCallData apiCallData) {
apiCallData.request.addHeader("exec01", "adicionado no request");
}
@InterceptorMethod
public void setarHeaderResponse(ApiCallData apiCallData) {
apiCallData.response.addHeader("exec02", "adicionado no response");
}
}
Com o interceptor em mãos, podemos gerar um .jar dele para posteriormente subi-lo para a plataforma e utilizar suas funções nos fluxos das APIs.
Para gerar o .jar, você pode utilizar o seguinte comando:
mvn package
Após o término do comando, o .jar será gerado dentro da pasta /target
.
Com isso, você já poderá fazer o upload do interceptor na Plataforma e utilizar suas funções nos fluxos.
Share your suggestions with us!
Click here and then [+ Submit idea]