Generá una API cliente Feign a partir del contrato
-
Importá
GenerateTask
(principio debuild.gradle
)build.gradleimport org.openapitools.generator.gradle.plugin.tasks.GenerateTask
-
Necesitamos las dependencias Spring Cloud Starter OpenFeign, Feign OkHttp, Feign Jackson y Feign Gson. Agregalas en la sección de
dependencies
debuild.gradle
:build.gradleimplementation 'org.springframework.cloud:spring-cloud-starter-openfeign:4.2.1'
implementation 'io.github.openfeign:feign-okhttp:13.5'
implementation 'io.github.openfeign:feign-jackson:13.5'
implementation 'io.github.openfeign:feign-gson:13.5' -
Configurá una nueva tarea de openapi-generator (al final de
build.gradle
):build.gradletasks.register("openApiGenerate_feign_jsonplaceholder", GenerateTask) {
apiPackage = "com.typicode.jsonplaceholder.api".toString()
configOptions = [
"feignClient": "true",
"interfaceOnly": "true",
"useEnumCaseInsensitive": "true",
"useJakartaEe": "true"
]
generateApiTests = false
generateApiDocumentation = false
generateModelTests = false
generateModelDocumentation = false
generatorName = "java"
inputSpec = "$rootDir/src/main/resources/openapi/jsonplaceholder.yaml".toString()
library = "feign"
modelPackage = "com.typicode.jsonplaceholder.model".toString()
outputDir = layout.buildDirectory.dir("generated/sources/openapi").get().asFile.toString()
}- Podés encontrar más información sobre las diferentes configuraciones posibles en la página de GitHub del plugin de Gradle para OpenAPI Generator.
- Recomendaciones personales:
- En
apiPackage
usá la url que vamos a integrar en formato Java, y que termine en.api
(jsonplaceholder.typicode.com
->com.typicode.jsonplaceholder.api
) - La misma idea para
modelPackage
(jsonplaceholder.typicode.com
->com.typicode.jsonplaceholder.model
)
- En
- Es importante asegurarte de que
inputspec
esté apuntando al archivo YAML de la OpenAPI Specification deseada.
-
Asegurate de que
compileJava
ahora dependa de ambas tareas de generación de OpenAPI:build.gradletasks.named('compileJava') {
dependsOn 'openApiGenerate', 'openApiGenerate_feign_jsonplaceholder'
} -
Ahora que todo está configurado, ejecutá la tarea Build. Cuando la tarea termine, si chequeás la carpeta
build\generated\sources\openapi
, vas a encontrar una nueva carpetajsonplaceholder.typicode.com
con la representación de la OpenAPI Specification en código Java, lista para ser usada.
Commiteá el progreso hasta ahora.
git add .
git commit -m "código de secondary adapter api externa generado a partir de una openapi specification"