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

OpenAPI定义含必填字段与互斥可选字段的JSON Schema

解决OpenAPI中两个可选字段互斥的问题

要实现你需要的「两个可选字段互斥」的约束,可以利用OpenAPI 3.x的not关键字来禁止请求体同时包含这两个字段,结合已有的必填字段定义即可完成配置。

修改后的完整OpenAPI描述如下:

openapi: 3.0.4
info:
  title: My API
  version: 1.0.0
paths:
  /my-endpoint:
    post:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: 
                - mandatoryField
              properties:
                mandatoryField:
                  type: string
                optionalFieldOne:
                  type: string
                optionalFieldTwo:
                  type: string
              # 禁止同时存在两个可选字段,满足互斥要求
              not:
                required:
                  - optionalFieldOne
                  - optionalFieldTwo

配置说明

  • required: [mandatoryField] 确保请求体必须包含这个必填字段,符合你的第一个要求
  • not关键字的作用是排除「同时包含optionalFieldOne和optionalFieldTwo」的非法情况,这样请求体的合法场景包括:
    1. 仅包含mandatoryField
    2. 包含mandatoryField和optionalFieldOne
    3. 包含mandatoryField和optionalFieldTwo

如果需要限制请求体不能出现未定义的额外字段,可以在schema层级添加additionalProperties: false:

# 在schema中添加该配置
additionalProperties: false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 18:33:22