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 esio.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últiple
Docket
frijoles reemplácelos conGroupedOpenApi
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 uno
Docket
— elimínelo y en su lugar agregue propiedades a suapplication.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.