Documentando uma API com Java Spring Boot usando Swagger

Maria Leitão - Jul 30 - - Dev Community

Passos para documentar uma RESTful API em Java Spring Boot com Swagger

  1. Adicionar dependências do Swagger

Adicione as dependências do Swagger no arquivo pom.xml:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
Enter fullscreen mode Exit fullscreen mode
  1. Configurar o Swagger

Crie uma classe de configuração do Swagger:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(new ApiInfoBuilder()
                        .title("My API")
                        .description("This is a RESTful API in Java Spring Boot using Swagger")
                        .version("1.0")
                        .contact(new springfox.documentation.service.Contact("API Support", "", "support@example.com"))
                        .build());
    }
}
Enter fullscreen mode Exit fullscreen mode
  1. Adicionar Anotações Swagger para Descrever Endpoints, Parâmetros e Respostas

Anotações de Operação:

Para cada endpoint, adicione anotações com detalhes da requisição HTTP, caminho e um resumo básico.

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/movies")
@Api(tags = "Movies")
public class MovieController {

    @ApiOperation(value = "Get a list of movies", notes = "Retrieves a list of movies")
    @GetMapping
    public List<Movie> getMovies() {
        // code ...
    }

    @ApiOperation(value = "Get a movie by ID", notes = "Retrieves a movie by its ID")
    @GetMapping("/{id}")
    public Movie getMovie(
            @ApiParam(value = "ID of the movie to be obtained", required = true) 
            @PathVariable String id) {
        // code ...
    }
}
Enter fullscreen mode Exit fullscreen mode

Definindo Modelos de Resposta:

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel(description = "Details about the Movie")
public class Movie {

    @ApiModelProperty(notes = "The unique ID of the movie")
    private String id;

    @ApiModelProperty(notes = "The name of the movie")
    private String name;

    // getters and setters
}

@ApiModel(description = "Details about the ErrorResponse")
public class ErrorResponse {

    @ApiModelProperty(notes = "The error code")
    private int code;

    @ApiModelProperty(notes = "The error message")
    private String message;

    // getters and setters
}
Enter fullscreen mode Exit fullscreen mode
  1. Gerar a Documentação do Swagger

Inicie a aplicação Spring Boot e acesse a interface Swagger UI no navegador:

http://localhost:8080/swagger-ui.html
Enter fullscreen mode Exit fullscreen mode
  1. Boas Práticas de Documentação
  • Use linguagem descritiva e sucinta para ajudar no entendimento da API.
  • Organize a ordem das anotações de forma lógica para seguir um fluxo claro e padronizado, facilitando a manutenção.
  • Atualize a documentação sempre que houverem mudanças na API para mantê-la consistente e útil.

Seguindo esses passos, você poderá documentar sua API em Java Spring Boot usando Swagger de maneira eficaz e clara.

. . . .
Terabox Video Player