https://github.com/darkmtrance/api-first
https://github.com/darkmtrance/api-first
api-first java openapi spring-boot swagger
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/darkmtrance/api-first
- Owner: darkmtrance
- License: mit
- Created: 2024-02-19T22:44:53.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-20T16:15:30.000Z (almost 2 years ago)
- Last Synced: 2025-03-11T04:32:53.820Z (10 months ago)
- Topics: api-first, java, openapi, spring-boot, swagger
- Homepage:
- Size: 72.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# API First
Un enfoque de desarrollo de software que ha ganado terreno rápidamente en la industria.
## Objetivo
Generar clases e interfaces a partir de una especificación OpenApi
## Librerias utilizadas
- [Spring Boot : 3.2.2](https://start.spring.io/)
- [Open Api Generator : 7.3.0](https://github.com/OpenAPITools/openapi-generator)
- [Swagger-annotations : 2.2.20](https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations)
- [Jackson-databind-nullable : 0.2.6](https://github.com/OpenAPITools/jackson-databind-nullable)
- [Javax.servlet-api : 4.0.1](https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.1)
- [Javax.annotation-api : 1.3.2](https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api/1.3.2)
- [Validation-api : 2.0.1.Final](https://mvnrepository.com/artifact/javax.validation/validation-api/2.0.1.Final)
- [Java : 17]()
## Implementación
1. Se descarga un proyecto maven de `springboot` desde https://start.spring.io/, el cual tendra como dependencia las librerias anteriores mencionadas.
2. Se debe abrir el proyecto desde la IDE de su preferencia, al ubicarse en la ruta `/src/main/resources/` se debe copiar el archivo OAS `cuenta_bancaria_descripcion.yaml`, el cual contiene la especificación de la API.
3. Luego se modifica el archivo `pom.xml` con el siguiente código:
```java
17
7.3.0
2.2.20
0.2.6
io.swagger.core.v3
swagger-annotations
${swagger.annotations.version}
org.openapitools
jackson-databind-nullable
${jackson-nullable.version}
javax.servlet
javax.servlet-api
4.0.1
compile
javax.annotation
javax.annotation-api
1.3.2
javax.validation
validation-api
2.0.1.Final
org.openapitools
openapi-generator-maven-plugin
${openapi-generator.version}
generate
true
./src/main/resources/cuenta_bancaria_descripcion.yaml
true
spring
true
false
false
false
false
java.io.IOException,com.example.NotFoundException
true
true
true
false
true
true
false
true
java17
true
true
```
Sobre la configuración de OpenAPI generator se explica las variables:
- inputSpec: Esta configuración especifica la ubicación del archivo de la especificación OpenAPI.
- generateSupportingFiles: Determina si se deben generar archivos de soporte, como utilidades y clases auxiliares. En este caso, se establece como true.
- generatorName: Indica el nombre del generador que se utilizará. En esta instancia, se emplea el generador "spring", diseñado para producir código compatible con proyectos Spring.
strictSpec: Controla si se aplicará una validación estricta a la especificación OpenAPI. Aquí se configura como true.
generateApiTests y generateModelTests: Estas configuraciones determinan si se deben generar pruebas automatizadas para las API y los modelos, respectivamente. En este caso, se establecen como false, lo que indica que no se generarán pruebas automatizadas.
configOptions: Este apartado define varias opciones de configuración para el generador. Algunas de estas opciones abarcan el manejo de excepciones en los controladores, el uso de validación de bean, así como la especificación del paquete de la API y el paquete del modelo.
4. Para generar el código se debera ejecutar lo siguiente:
```java
mvn clean install
```