【问题标题】:Swagger editor how to specify which fields in request body (POST) are required?Swagger 编辑器如何指定请求正文(POST)中的哪些字段是必需的?
【发布时间】:2020-09-17 15:26:01
【问题描述】:

我正在尝试在在线 Swagger 编辑器中为用户类定义 POST 方法。

我希望能够在请求正文中指定多个字段,并且我希望生成的文档能够反映只需要 2 个字段,其他字段是可选的。

我必须做什么/改变才能做到这一点?

我已经尝试了使用“必需”关键字的各种变体(见下图),但未能成功,它没有显示在生成的文档中(见右下图我的注释是红色的)。

这是我在编辑器中的 POST 定义:

这是生成的文档预览,我在其中指出了我希望看到的更改。

PS。还有一些(较早的)帖子解决了这个问题,但我真的不认为这是重复的。

【问题讨论】:

  • 你的第二个例子是正确的。切换到“架构”选项卡以查看架构文档,这是显示字段描述(包括所需标志)的位置。
  • Youvegottobekiddingme ...你是对的!现在我必须弄清楚如何将“模式”显示为默认值......(一个poropos,另一篇文章对我没有帮助,因为它是关于模型中的字段,而不是方法中的字段,但它确实使不过,现在对我来说更有意义)。

标签: openapi swagger-editor


【解决方案1】:

我希望能够在请求正文中指定多个字段,并且我希望生成的文档能够反映只需要 2 个字段,其他字段是可选的。

你的第二个例子是正确的。要指定所需的对象属性,请在对象级别添加required: [prop1, prop2, ...](即在type: object 旁边)。 required 列表中未列出的属性是可选的。如果未提供required 列表,则所有属性都是可选的。

type: object
required: [email, password]  # <--------
properties:
  email:
    type: string
  password:
    type: string
  name:
    type: string

在 Swagger UI 中,特定于操作的架构文档显示在 Schema(或 Model)选项卡上。这是显示属性描述、数据类型、“必需”指示符和其他架构信息的地方。

现在我必须弄清楚如何将“模式”显示为默认值

要使 Schema/Model 选项卡默认处于活动状态,请将 Swagger UI 配置为将 defaultModelRendering 选项设置为 "model"

【讨论】:

    猜你喜欢
    • 2018-07-12
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 2020-10-02
    • 2016-12-09
    • 2014-12-05
    相关资源
    最近更新 更多