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

如何配置Swagger UI使其支持接收包含可选字段的请求体

Swagger可选字段配置方案

Swagger(OpenAPI)完全支持可选字段的配置,具体实现方式如下:

核心实现逻辑

OpenAPI的Schema对象支持通过required顶层属性声明必填字段列表,所有未出现在该列表中的字段默认即为可选字段,符合你只在请求携带app字段时才存储的需求。

修改后的配置示例

你只需要在现有的Project Schema中补充required数组即可,修改后代码如下:

post: {
    summary: 'Create a new project',
    tags: ['projects'],
    requestBody: {
        content: {
            'application/json': {
                schema: {
                    $ref: '#/components/schemas/Project'
                }
            }
        }
    }
},
components: {
    schemas: {
        Project: {
            type: 'object',
            // 声明必填字段,未列入的app字段自动为可选
            required: ["name", "description", "github", "logo"],
            properties: {
                name: {
                    type: 'string'
                },
                description: {
                    type: 'string'
                },
                github: {
                    type: 'string'
                },
                logo: {
                    type: 'string'
                },
                app: {
                    type: 'string',
                    description: "可选字段,仅请求携带时存入数据库"
                }
            }
        }
    }
}

额外说明

  • 配置完成后Swagger UI会自动为必填字段标注*号,可选字段无标识,生成的请求示例也会明确提示app为可选项。
  • 如果需要允许app字段传入null值,可以在app的属性配置中新增nullable: true即可。

内容的提问来源于stack exchange,提问作者João Casarin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:09:00