Especificación OpenAPI 3.0

¿Qué es?

OpenAPI es un descriptor de APIs con el cual se pueden diseñar, construir, documentar y consumir APIs REST. Un fichero de OpenAPI nos permite describir nuestra API entera incluyendo:

  • Todos los endpoints disponibles con la operación que le corresponda (GET, POST, DELETE...)

  • Parametros de entrada y de salida para cada una de las operaciones.

  • Métodos de autenticación y seguridad.

  • Información de contacto, licencias, condiciones de uso y más información. 

Para realizar todas estas tareas se usará Swagger, un conjunto de herramientas que se basan en todas las especificaciones de OpenAPI, para poder diseñar y construir nuestras APIs para que puedan ser consultadas y consumidas por los diferentes usuarios.

El principal propósito es tener una Interfaz Autodocumentada, dónde se determina como mínimo la siguiente información

Info:

  • Title: Título de la API

  • Description: Descripción de la API.

  • Versión: Versión de la interfaz.

Servers:

  • URL: Del entorno real y el Sandbox.

  • Description: Descripción del entorno.

Paths:

  • Summary: Descripción para qué sirve la operación (Para cada operación/path)

  • Description: Descripción ampliada.

  • Schema: Estructura de datos entrada.

  • Required: Indicador de si es requerido o no el dato.

  • Schema: Estructura de datos devueltos.

  • Examples: Ejemplos de datos de entrada.

Security: Tipo de seguridad permitidas.

Swagger

Las herramientas de Swagger se encuentran disponibles para ser usadas como librería para añadir como dependencia a nuestro proyecto. A partir de ella tendremos acceso a poder usar las diferentes posibilidades que nos ofrece Swagger:

  • Etiquetas: Mediante el uso de etiquetas de Spring podremos definir nuestras operaciones y controladores para que sean mostrados en la documentación generada por Swagger.

  • Configuración: Se puede definir una clase de configuración en la que añadir toda la  configuración extra que se desee (como sería el caso de la autenticación). 

Cambios de Swagger 2 a Swagger 3

En el caso de hacer uso de actualmente de Swagger 2 y se desee hacer el cambio a Swagger 3 dejamos un listado de cambios importantes en las etiquetas usadas desde Spring con el cambio de versión:

Swagger2 → Swagger3

  • @Api →@Tag

  • @ApiIgnore → @Parameter(hidden = true) o @Operation(hidden = true) o @Hidden

  • @ApiImplicitParam → @Parameter

  • @ApiImplicitParams → @Parameters

  • @ApiModel → @Schema

  • @ApiModelProperty(hidden = true) → @Schema(accessMode = READ_ONLY)

  • @ApiModelProperty → @Schema

  • @ApiOperation(value = "foo", notes = "bar") → @Operation(summary = "foo", description = "bar")

  • @ApiParam → @Parameter

  • @ApiResponse(code = 404, message = "foo") → @ApiResponse(responseCode = "404", description = "foo")


Documentación Oficial

Para más información consultar la documentación oficial o la guía de uso.

 

Guía de uso Onesait

 

Puedes encontrar nuestra receta Onesait de como utilizarlo en Guía de uso de OpenAPI 3