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.

custom java interceptor
Thanks for your feedback!
EDIT
How useful was this article to you?