DEV Community

Samuell Ralph
Samuell Ralph

Posted on

Configuração básica do Springfox

Springfox é uma ferramenta open source com uma UI (interface de usuário) amigável, desenvolvida para integrar Spring Boot com as especificações do Swagger e apresentar a documentação de uma API Rest.

Link do projeto: Springfox

Antes de prosseguirmos fica uma observação.
Acima da versão 2.4.X do Spring Boot é necessário adicionar a anotação @EnableWebMvc na classe de configuração Springfox ou na classe mainApp, abaixo possui um exemplo.

Iniciaremos com a criação de um projeto no Spring Initialize, adicione a dependência Spring Web.

Após importar o projeto na sua IDE, adicione a dependência do Springfox ao pom.xml:

<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-boot-starter</artifactId>
   <version>3.0.0</version>
</dependency>
Enter fullscreen mode Exit fullscreen mode

Crie uma classe para configuração de apresentação da UI do Swagger, está classe definirá como o que deve ser exibido na UI, além disso possui o @EnableWebMvc mencionado acima.

@EnableWebMvc
@Configuration
public class SwaggerConfig {

    @Bean
    public Docket swagger() {
        return new Docket(DocumentationType.SWAGGER_2).select()
                .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
                .paths(PathSelectors.any())
                .build();
    }
}
Enter fullscreen mode Exit fullscreen mode

Crie um controller com os verbos HTTP de exemplo.

@RestController
@RequestMapping("/exemplo")
public class ExemploController {

    @GetMapping
    public String getExemplo() {
        return "Retorno exemplo";
    }

    @PostMapping
    public void postExemplo() {
    }

    @PutMapping
    public void putExemplo() {
    }

    @DeleteMapping
    public void deleteExemplo() {
    }
}
Enter fullscreen mode Exit fullscreen mode

Start a aplicação, e acesse http://localhost:8080/swagger-ui/index.html

Swagger

Apresentei aqui uma configuração básica do Springfox, integrado ao Spring Boot para a apresentação de uma UI amigável dos endpoints de uma API Rest.

Top comments (0)