Guía de Desarrollo de Software

Logo

Guía de Desarrollo de Software para del desarrollo de aplicaciones sobre el repositorio de la Dirección de Información y Tecnologías DSIT de la Universidad de Los Andes. Versión 1.2.0

Home

View the Project on GitHub UniandesDSIT/coding-guidelines

[ Volver al Menú Principal ]

Con fin de automatizar procesos se implementa swagger de la mano con Rest Dsl para generar una documentación de las API Rest directamente basada con el código, esto asegura una documentación actualizada.

Se debe documentar en swagger toda API-Rest o servicio que exponga por medio de HTTP recursos que permita interactuar con otras aplicaciones por medio de acciones como (consultar / modificar / crear / eliminar) haciendo énfasis en la estructura de petición y respuesta, y el manejo de errores.

El servidor con la documentación swagger se encuentra en http://filandia.uniandes.edu.co/swagger/


Dependencia requerida en el POM

<dependency>
	<groupId>org.apache.camel</groupId>
	<artifactId>camel-swagger-java</artifactId>
	<version>${camel.version}</version>
</dependency>

Código Ejemplo:

/**
* REST & SWAGGER CONFIGURATION
*/
restConfiguration()
.component("netty4-http")
.bindingMode(RestBindingMode.off) //Off para evitar conflictos con los data formats
.host("")
.port("")
.contextPath("//v")
.apiContextPath("/doc")
.apiContextRouteId("doc")
.apiProperty("api.title", "")
.apiProperty("api.version", "")
.apiProperty("cors", "");

/**
* REST & SWAGGER COMPONENTSS
*/
rest("/students").description("Example rest service")
.get("/personal-info/{type}/{document}")
	.description("Find a user by type and document")				
	.consumes("application/json").produces("application/json")
		.param().name("type").required(true).description("The type of the user").defaultValue("CC").dataType("string")
		.endParam()
		.param().name("document").required(true).description("The document of the user").defaultValue("1234567").dataType("integer")
		.endParam()
	.outType(User.class)
	.to("direct:find")

Una vez el proyecto este corriendo en el servidor, se puede acceder a la documentación meadiente la URL compuesta en la configuración, swagger permite generar el contenido tanto en json como en yaml

  {
  "swagger" : "2.0",
  "info" : {
    "version" : "1.0.0",
    "title" : "User Api Example"
  },
  "host" : "localhost:9090",
  "basePath" : "/restDSL/v1.0.0",
  "tags" : [ {
    "name" : "students",
    "description" : "Example rest service"
  }, {
    "name" : "teachers",
    "description" : "Example rest service"
  } ],
  "schemes" : [ "http" ],

Ejemplo Yaml: http://localhost:9090/restDSL/v1.0.0/doc/swagger.yaml

---
swagger: "2.0"
info:
  version: "1.0.0"
  title: "User Api Example"
host: "localhost:9090"
basePath: "/restDSL/v1.0.0"
tags:
- name: "students"
  description: "Example rest service"
- name: "teachers"
  description: "Example rest service"
schemes:
- "http"
paths:
  /students/personal-info:

Para mayor información: https://camel.apache.org/components/latest/swagger-java.html

[ Volver al Menú Principal ]