Saltar al contenido

Migración de springfox swagger2 a springdoc openapi

Bienvenido a proyecto online, ahora vas a encontrar la resolución que estás buscando.

Solución:

Migración desde SpringFox

  • Elimine las dependencias springfox y swagger 2. Agregar springdoc-openapi-ui dependencia en su lugar.
   
      org.springdoc
      springdoc-openapi-ui
      @[email protected]
   
  • Reemplace las anotaciones swagger 2 con anotaciones swagger 3 (ya está incluido con springdoc-openapi-ui dependencia). El paquete para las anotaciones swagger 3 es io.swagger.v3.oas.annotations.

    • @ApiParam -> @Parameter
    • @ApiOperation -> @Operation
    • @Api -> @Tag
    • @ApiImplicitParams -> @Parameters
    • @ApiImplicitParam -> @Parameter
    • @ApiIgnore -> @Parameter(hidden = true) o @Operation(hidden = true) o @Hidden
    • @ApiModel -> @Schema
    • @ApiModelProperty -> @Schema
  • Este paso es opcional: Solo si tienes múltipleDocket frijoles reemplácelos con GroupedOpenApi frijoles.

    Antes:

        @Bean
        public Docket publicApi() 
            return new Docket(DocumentationType.SWAGGER_2)
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("org.github.springshop.web.public"))
                    .paths(PathSelectors.regex("/public.*"))
                    .build()
                    .groupName("springshop-public")
                    .apiInfo(apiInfo());
        
    
        @Bean
        public Docket adminApi() 
            return new Docket(DocumentationType.SWAGGER_2)
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("org.github.springshop.web.admin"))
                    .paths(PathSelectors.regex("/admin.*"))
                    .build()
                    .groupName("springshop-admin")
                    .apiInfo(apiInfo());
        
    

    Ahora:

        @Bean
        public GroupedOpenApi publicApi() 
            return GroupedOpenApi.builder()
                    .setGroup("springshop-public")
                    .pathsToMatch("/public/**")
                    .build();
        
    
        @Bean
        public GroupedOpenApi adminApi() 
            return GroupedOpenApi.builder()
                    .setGroup("springshop-admin")
                    .pathsToMatch("/admin/**")
                    .build();
        
    

    Si usted tiene sólo unoDocket — elimínelo y en su lugar agregue propiedades a su application.properties:

    springdoc.packagesToScan=package1, package2
    springdoc.pathsToMatch=/v1, /api/balance/**
    
  • Agregar frijol de OpenAPI escribe. Ver ejemplo:

        @Bean
        public OpenAPI springShopOpenAPI() 
            return new OpenAPI()
                    .info(new Info().title("SpringShop API")
                    .description("Spring shop sample application")
                    .version("v0.0.1")
                    .license(new License().name("Apache 2.0").url("http://springdoc.org")))
                    .externalDocs(new ExternalDocumentation()
                    .description("SpringShop Wiki Documentation")
                    .url("https://springshop.wiki.github.org/docs"));
        
    
  • Si swagger-ui se sirve detrás de un proxy:

    • https://springdoc.org/faq.html#how-can-i-deploy-the-doploy-springdoc-openapi-ui-behind-a-reverse-proxy.
  • Para personalizar la interfaz de usuario de Swagger

    • https://springdoc.org/faq.html#how-can-i-configure-swagger-ui.
  • Para ocultar una operación o un controlador de la documentación

    • https://springdoc.org/faq.html#how-can-i-hide-an-operation-or-a-controller-from-documentation-.

Puede actualizar las anotaciones de Swagger2 a Swagger3 (compatible con springdoc).

Artículo con expresiones regulares útiles: https://www.david-merrick.com/2017/11/15/useful-regexes-for-transitioning-swagger-2-0-to-3-0-annotations/

Ambas cosas @ApiModel y @ApiModelProperty necesita ser reemplazado con @Schema (io.swagger.v3.oas.annotations.media.Schema)

Comentarios y puntuaciones del post

Al final de la post puedes encontrar los comentarios de otros programadores, tú igualmente eres capaz mostrar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *