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

如何在SpringDoc UI中对实体类、DTO类生成的Schemas排序?

SpringDoc UI Schemas排序解决方案

你已经搞定了标签和操作的排序,剩下Schemas的排序确实没有直接的YAML配置项,不过可以通过两种方式来实现,看你具体需求:

一、对Schemas列表(所有实体/DTO类的Schema)进行字母排序

SpringDoc没有提供现成的配置开关,但可以通过自定义OpenApiCustomizer来手动排序Schemas:

创建一个Spring配置类,添加如下Bean:

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.media.Schema;
import org.springdoc.core.customizers.OpenApiCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;

@Configuration
public class SpringDocSchemaSortConfig {

    @Bean
    public OpenApiCustomizer schemaAlphabeticalSortCustomizer() {
        return openApi -> {
            Map<String, Schema> schemas = openApi.getComponents().getSchemas();
            if (schemas != null && !schemas.isEmpty()) {
                // 按Schema名称(类名)字母排序,用LinkedHashMap保持顺序
                Map<String, Schema> sortedSchemas = schemas.entrySet()
                        .stream()
                        .sorted(Map.Entry.comparingByKey())
                        .collect(Collectors.toMap(
                                Map.Entry::getKey,
                                Map.Entry::getValue,
                                (oldVal, newVal) -> oldVal,
                                LinkedHashMap::new
                        ));
                openApi.getComponents().setSchemas(sortedSchemas);
            }
        };
    }
}

这段代码会在OpenAPI文档生成时,自动把所有Schemas按名称字母排序,重启服务后Swagger UI的Schemas标签下就会看到有序的列表了。

二、对单个Schema内部的属性进行排序

如果你是希望实体/DTO类的字段在Schema详情里按指定顺序排列,可以给每个字段添加@Schema注解的order属性:

import io.swagger.v3.oas.annotations.media.Schema;

public class UserDTO {
    @Schema(description = "用户唯一ID", order = 1)
    private Long id;

    @Schema(description = "用户昵称", order = 2)
    private String nickname;

    @Schema(description = "注册邮箱", order = 3)
    private String email;
}

字段会按照order值从小到大的顺序在Schema详情中展示,数值越小越靠前。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 07:18:10