当前位置: 首页 > 知识库问答 >
问题:

Swagger编辑器如何指定请求正文(POST)中需要哪些字段?

赵雪峰
2023-03-14

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

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

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

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

以下是我在编辑器中的帖子定义:

这里是生成的文档预览,我已经指出了我希望看到更改的内容。

另外,还有一些(老)帖子提到了这一点,但我真的不认为这是一个重复。

共有1个答案

陈晟睿
2023-03-14

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

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

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

在Swagger UI中,特定于操作的模式文档显示在模式(或模型)选项卡上。在那里显示属性描述、数据类型、“必需”指示器和其他模式信息。

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

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

 类似资料:
  • 我有一些问题需要解决,根据下面的链接,请求主体的JSON编辑器(默认禁用)。 https://github.com/jensoleg/swagger-ui 我如何启用它?

  • 在我的请求正文中,几乎没有JSON原始数据中需要的参数,我希望在Postman中的请求前脚本中验证这些参数是否存在于正文中。 如何检查请求正文中是否传递了和?

  • 我正在努力研究如何在swagger editor中定义字典类型。我的POST方法的一个参数叫做“角色”,它的值是一个字典,其中键是电子邮件地址,值是整数。

  • 我是Pact.io的新手,正在尝试在我们的平台上设置合同测试。应用程序是这样设置的,每个客户帐户都有自己的数据库模式,直接绑定到一个URL子域。当发出API请求时,除了授权标头之外,还必须提供该URL子域。我可以创建一个静态令牌来与使用者测试一起传递,但是当Pact发送请求时,它不知道要使用哪个帐户。我看不出有什么方法可以通过一个URL子域作为消费者测试的一部分,并且不确定如何强制它使用提供者端的

  • 问题内容: 我现在使用的代码: 似乎工作正常,但我不确定在将ByteBuffer返回池之前是否需要ByteBuffer。我什至不确定要使用。文档中没有太多关于它的内容。 问题答案: 读取请求正文的一种更简单的方法是将其分派到一个工作线程,该工作线程可以使用。 有两种方法:使用或文档中所示的调度模式。这是使用的示例: 在基本上没有派遣你。

  • get请求参数是连接在url后面的,而post请求参数是存放在requestbody内的; get请求因为浏览器对url长度有限制,所以参数个数有限制,而post请求参数个数没有限制; 因为get请求参数暴露在url上,所以安全方面post比get更加安全; get请求只能进行url编码,而post请求可以支持多种编码方式; get请求参数会保存在浏览器历史记录内,post请求并不会; get请求