从Springfox Swagger 2迁移到SpringdocOpen API [英] Migrating from Springfox Swagger 2 to Springdoc Open API

查看:9
本文介绍了从Springfox Swagger 2迁移到SpringdocOpen API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试着遵循这些:

https://www.dariawan.com/tutorials/spring/documenting-spring-boot-rest-api-springdoc-openapi-3/

如何处理如下批注:

  • @ApiModel(value = "Response container")
  • @ApiModelProperty(value = "Iventory response", required = true)

推荐答案

Migrating from SpringFox

  • 删除Sprringfox和swagger 2依赖项。改为添加springdoc-openapi-ui依赖项。
   <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-ui</artifactId>
      <version>@springdoc.version@</version>
   </dependency>
  • 将swagger 2批注替换为swagger 3批注(它已经包含在springdoc-openapi-ui依赖项中)。 Swagger 3批注的包是io.swagger.v3.oas.annotations

    • @ApiParam->;@Parameter
    • @ApiOperation->;@Operation
    • @Api->;@Tag
    • @ApiImplicitParams->;@Parameters
    • @ApiImplicitParam->;@Parameter
    • @ApiIgnore-&>@Parameter(hidden = true)@Operation(hidden = true)@Hidden
    • @ApiModel->;@Schema
    • @ApiModelProperty->;@Schema
  • 此步骤是可选的:仅当您有多个DocketBean时,才用GroupedOpenApiBean替换它们。

    之前:

        @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());
        }
    

    现在:

        @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();
        }
    

    如果您只有一个Docket--将其删除,并将属性添加到您的application.properties

    springdoc.packagesToScan=package1, package2
    springdoc.pathsToMatch=/v1, /api/balance/**
    
  • 添加OpenAPI类型的Bean。请参见示例:

        @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"));
        }
    
  • 如果swagger-ui在代理后面提供:

  • 自定义Swagger用户界面

  • 向文档隐藏操作或控制器

这篇关于从Springfox Swagger 2迁移到SpringdocOpen API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆