You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus中如何通过OpenAPI注解控制Swagger-UI的API路径排序?

解决Quarkus Swagger-UI自定义API端点排序问题

要实现你想要的自定义排序,需要结合OpenAPI的@Operation注解和修改Swagger-UI配置,具体步骤如下:

1. 修改Swagger-UI配置

在application.yaml中,把operationsSorter的值从"alpha"改为"order",让Swagger-UI按照每个API操作指定的顺序值排序:

quarkus:
  swagger-ui:
    always-include: true
    tagsSorter: "alpha"
    operationsSorter: "order"  # 切换为按order值排序
  http:
    cors: true
    port: 9000

2. 给每个API方法添加@Operation注解并指定order值

在ExtensionResource类中,为每个接口方法导入并添加io.swagger.v3.oas.annotations.Operation注解,通过order属性设置排序优先级(数值越小,展示位置越靠前):

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;

@Path("/api")
@Tag(
    name = "Extensions Controller",
    description = "Extensions Information")
public class ExtensionResource {

    @POST
    @Path("/post/extensions")
    @Operation(order = 3)  // 第三个展示
    public String listExtensions() {
        return "extensions";
    }

    @GET
    @Path("/get/extension")
    @Operation(order = 1)  // 第一个展示
    public String getExtension() {
        return "extension";
    }

    @POST
    @Path("/post/extension")
    @Operation(order = 2)  // 第二个展示
    public String addExtension() {
        return "extension";
    }
}

原理说明

  • operationsSorter: "order"会让Swagger-UI放弃默认的字母排序逻辑,转而遵循每个@Operation注解中order属性的数值排序规则。
  • 通过给目标API分配对应顺序的order值,就能精准控制它们在Swagger-UI中的展示顺序,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者BATMAN_2008

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:10:37