An open API service indexing awesome lists of open source software.

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

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
```