如何在 Swagger UI (OpenAPI) 上重新排序端点?

D.B*_*D.B 6 java kotlin swagger spring-boot openapi

我已经在 Spring boot 应用程序中配置了 Swagger,spring boot 应用程序有 2 个控制器,casesController 和 AttachmentController,我希望附件控制器中的所有端点都出现在 case 控制器端点之后,但 swagger 正在做相反的事情。

swagger 正在做什么: 在此输入图像描述

我的代码如下所示:

配置文件:

@Configuration
class OpenApiConfig(
    @Value("\${springdoc.info.title}") val title: String,
    @Value("\${springdoc.info.description}") val infoDescription: String,
    @Value("\${springdoc.info.version}") val version: String,
    @Value("\${springdoc.info.license.name}") val licenseName: String,
    @Value("\${springdoc.info.license.url}") val licenseUrl: String,
    @Value("\${springdoc.info.contact.email}") val email: String,
    @Value("\${springdoc.server.url}") val url: String,
    @Value("\${springdoc.server.description}") val description: String
) {
@Bean
fun customOpenAPIConfig(): OpenAPI {
    return OpenAPI()
            .components(
                    Components()
            )
            .info(
                    Info().title(title).description(infoDescription).version(version)
                            .license(License().name(licenseName).url(licenseUrl))
                            .contact(Contact().email(email))
            )
            .servers(listOf(Server().url(url).description(description)))
            .tags(listOf(Tag()))

 }
}
Run Code Online (Sandbox Code Playgroud)

附件控制器:

@RestController
@RequestMapping("/cases/{id}/attachments")
lass AttachmentController(private val caseManagementService: CaseManagementService) {

@Operation(
    summary = "Add attachment",
    tags = ["attachment"],
    description = "Add attachment to a case"
)
@PostMapping()
@ResponseStatus(HttpStatus.CREATED)
fun addAttachment(@RequestBody attachmentRequest: AttachmentRequestDto, @PathVariable id: String, @RequestHeader(value = "X-API-KEY") xApiKey: String): Mono<AttachmentResponseDto> {

    ....
}
Run Code Online (Sandbox Code Playgroud)

案例控制器:

@RestController
@RequestMapping("/cases")
class CaseController(private val caseManagementService: CaseManagementService) {

@Operation(
    summary = "Create case",
    tags = ["case"],
    description = "Create case"
)
@PostMapping()
@ResponseStatus(HttpStatus.CREATED)
fun createCase(@RequestBody caseRequest: CaseRequestDto, @RequestHeader(value = "X-API-KEY") xApiKey: String): Mono<CaseResponseDto> {

.... 
}
Run Code Online (Sandbox Code Playgroud)

ADJ*_*ADJ 2

请看一下我在这里的回答

简而言之,一种方法是使用@Tag和 属性的组合springdoc.swagger-ui.tagsSorter=alpha