Spring Boot Rest 7/10 – Documentando del proyecto con Swagger 2

19

En el artículo anterior, revisamos cómo asegurar nuestra aplicación con Basic Auth de HTTP. En este artículo demostraremos cómo agregar documentación de Swagger a nuestro proyecto. 🍃

Swagger

Swagger es una herramienta que pretende simplificar el desarrollo de APIs mediante la generación automática de modelos y especificación de APIs. Así mismo también cuenta con generación de documentación automática para nuestros proyectos (lo cual revisaremos en este artículo). Si quieres conocer más sobre el proyecto de Swagger, visita su página oficial. 🤓

Dependencias

Como lo vimos en el primer artículo de esta serie, es necesario contar con las dependencias adecuadas para que las siguientes configuraciones funcionen, en este caso:

compile 'io.springfox:springfox-swagger2:2.8.0'
compile 'io.springfox:springfox-swagger-ui:2.8.0'

Swagger Configuration

Como podemos observar a continuación, para configurar Swagger, anotaremos una clase con @Configuration y @EnableSwagger2. Después agregaremos información descriptiva sobre nuestro proyecto, especificaremos qué paths serán documentados y añadiremos la interfaz de Swagger al manejador de recursos.

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("Codesolt - Coffee Service")
                .apiInfo(apiInfo())
                .enable(true)
                .select().paths(regex("/api/coffee-service.*"))
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Codesolt Coffee Service")
                .description("REST API for determine Cryptocurrency relevance. Consumes BITSO API")
                .version("1.0.0")
                .license("Apache License Version 2.0")
                .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0\"")
                .contact(new Contact("Carlos Salazar", "https://codesolt.com/", "carlos.salazar@codesolt.com"))
                .build();
    }

    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui.html**")
                .addResourceLocations("classpath:/META-INF/resources/");
    }

Con esta configuración, tendremos documentación automática de nuestro proyecto en una bonita interfaz, como la que se muestra en el inicio de esta serie cada que construyamos nuestra aplicación. 🎉

En el siguiente artículo, demostraremos cómo hacer pruebas de integración en un proyecto de Spring Boot con conexión a Mongo DB. 😉

Repositorio de Github

Puedes encontrar el código del proyecto en el siguiente repositorio de Github:

https://github.com/chuucks/coffee-service


La configuración del proyecto de Spring Boot con Gradle, conexión a Mongo DB y autenticación básica de HTTP, en esta plataforma tiene únicamente fines educativos e ilustrativos. Para usar en producción requiere de mayores consideraciones, configuraciones y especificaciones. No dudes en contactarnos para cualquier duda o comentario o incluso abrir un Issue de Github en el repositorio del proyecto. 👍🏾

Comments

comments