Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
ada:howto:sicoferp:factory:goodsoftwaredevelopmentpractices:doc [2023/11/06 20:17] 192.168.177.82 |
ada:howto:sicoferp:factory:goodsoftwaredevelopmentpractices:doc [2023/11/07 15:55] (actual) 192.168.175.10 [¿Que es OpenAPI?] |
||
---|---|---|---|
Línea 14: | Línea 14: | ||
==== ¿Que es OpenAPI? ==== | ==== ¿Que es OpenAPI? ==== | ||
- | OpenAPI es el estándar global para escribir APIs RESTful. Es como una especificación que permite a los desarrolladores de todo el planeta estandarizar el diseño de sus APIs. | + | OpenAPI es el estándar global para escribir APIs RESTful. Es una especificación que permite a los desarrolladores estandarizar el diseño de sus APIs. |
- | Además, cumple con toda la seguridad, el versionado, el manejo de errores y otras mejores prácticas al escribir APIs REST desde cero. Y no sólo desde el principio, sino que incluso las APIs existentes pueden ajustarse para cumplir con un estándar global((https://codigoencasa.com/openapi/)). | + | Además, cumple con toda la seguridad, el versionado, el manejo de errores y mejores prácticas al escribir APIs REST desde cero. Y no sólo desde el principio, sino que incluso las APIs existentes pueden ajustarse para cumplir con un estándar global((https://codigoencasa.com/openapi/)). |
La especificación OpenAPI es un lenguaje de especificación para API HTTP que proporciona un medio estandarizado para definir su API ante otros. Podemos descubrir rápidamente cómo funciona una API, configurar la infraestructura, generar código de cliente y crear casos de prueba. [[https://www.openapis.org/|Para mas información -> Ir al sitio web oficial.]] | La especificación OpenAPI es un lenguaje de especificación para API HTTP que proporciona un medio estandarizado para definir su API ante otros. Podemos descubrir rápidamente cómo funciona una API, configurar la infraestructura, generar código de cliente y crear casos de prueba. [[https://www.openapis.org/|Para mas información -> Ir al sitio web oficial.]] | ||
Línea 44: | Línea 44: | ||
<version>1.6.12</version> | <version>1.6.12</version> | ||
</dependency> | </dependency> | ||
+ | </code> | ||
+ | |||
+ | ==== Configuración de opciones en el archivo de configuración (.properties/.yaml) ==== | ||
+ | Se deben adicionar las siguientes propiedades para activar la generación y visualización de la documentación. | ||
+ | |||
+ | <code properties> | ||
+ | #***************************************************************************** | ||
+ | #OpenAPI Configuration | ||
+ | #***************************************************************************** | ||
+ | # Specify the path of the OpenAPI documentation | ||
+ | springdoc.api-docs.path=/api-docs | ||
+ | |||
+ | # Specify the path of the Swagger UI | ||
+ | springdoc.swagger-ui.path=/swagger-ui.html | ||
+ | |||
+ | # Enable or disable Swagger UI | ||
+ | springdoc.swagger-ui.enabled=true | ||
</code> | </code> | ||
Línea 49: | Línea 66: | ||
Defina una clase que implemente la anotación @Config y adicione un Bean OpenAPI como se ilustra a continuación. | Defina una clase que implemente la anotación @Config y adicione un Bean OpenAPI como se ilustra a continuación. | ||
- | <code java>package com.ada.viatico.proceso.config; | + | <code java> |
+ | /** | ||
+ | * Copyright © 2023 ADA Corporation. All rights reserved. | ||
+ | * | ||
+ | * This component is protected by copyright. | ||
+ | * | ||
+ | * Use of this component is subject to the terms of the license agreement. | ||
+ | */ | ||
+ | package com.ada.viatico.proceso.config; | ||
import java.util.List; | import java.util.List; | ||
Línea 123: | Línea 148: | ||
<code java> | <code java> | ||
+ | /** | ||
+ | * Copyright © 2023 ADA Corporation. All rights reserved. | ||
+ | * | ||
+ | * This component is protected by copyright. | ||
+ | * | ||
+ | * Use of this component is subject to the terms of the license agreement. | ||
+ | */ | ||
package com.ada.viatico.proceso.controller.v2; | package com.ada.viatico.proceso.controller.v2; | ||
Línea 241: | Línea 273: | ||
return new ResponseEntity<>(result, HttpStatus.CREATED); | return new ResponseEntity<>(result, HttpStatus.CREATED); | ||
} | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ==== Documentación de Dtos expuestos en los EndPoints (Controller) ==== | ||
+ | Cada servicio expuesto debe describir la definición del request (consumo) a continuación se comparte ejemplo de documentación de un dto. | ||
+ | |||
+ | <code java> | ||
+ | /** | ||
+ | * Copyright © 2023 ADA Corporation. All rights reserved. | ||
+ | * | ||
+ | * This component is protected by copyright. | ||
+ | * | ||
+ | * Use of this component is subject to the terms of the license agreement. | ||
+ | */ | ||
+ | package com.ada.viatico.proceso.sfcomercial.dto; | ||
+ | |||
+ | import java.io.Serializable; | ||
+ | |||
+ | import io.swagger.v3.oas.annotations.media.Schema; | ||
+ | import lombok.Data; | ||
+ | |||
+ | /** | ||
+ | * Instantiates a new afectacion presupuestal dto. | ||
+ | */ | ||
+ | @Schema(description = "Dto que contiene la configuración de afectación presupuestal de un rubro de una disponibilidad..") | ||
+ | @Data | ||
+ | public class AfectacionPresupuestalDto implements Serializable { | ||
+ | |||
+ | /** The Constant serialVersionUID. */ | ||
+ | private static final long serialVersionUID = -7167570415608375973L; | ||
+ | |||
+ | /** The cod disponibilidad. */ | ||
+ | @Schema(description = "Código de la disponibilidad.") | ||
+ | Long codDisponibilidad; | ||
+ | |||
+ | /** The codigo rubro. */ | ||
+ | @Schema(description = "Código del rubro.") | ||
+ | Long codigoRubro; | ||
+ | |||
+ | /** The valor. */ | ||
+ | @Schema(description = "Valor de afectación del rubro prespuestal.") | ||
+ | Long valor; | ||
+ | |||
+ | /** The cod C costos. */ | ||
+ | @Schema(description = "Código del centro de costos.") | ||
+ | Long codCCostos; | ||
} | } | ||
</code> | </code> |