【问题标题】:Swagger request dynamic objectSwagger 请求动态对象
【发布时间】:2017-03-03 12:54:28
【问题描述】:

我正在为我的 api 文档使用 Swagger。有些 Api 使用动态 post 对象,所以我只使用:

parameters:
 - name: region
   in: body
   schema:
     type: object

在 swagger UI 中,我可以使用“编辑 Json”按钮编辑内容,但是在单击“保存”后,没有任何附加到请求,当我单击“发送请求”按钮时,它仍然发送空请求。那么,我哪里错了?

我在http://editor.swagger.io/上进行了测试,将一个post参数更改为“object”类型,然后仍然无法编辑json数据。

【问题讨论】:

  • 尽管我无法在 Swagger UI 中重现您的问题,但我还是发布了您的问题的答案。根据我的经验,即使没有 additionalProperties,Swagger UI 也可以让您发送动态属性。 Swagger Codegen 也不能这样说。当您生成客户端代码时,您会发现 additionalProperties 可以为您提供更好的结果。如果您仍然对 Swagger UI 有疑问,请澄清问题。
  • zhonshu,感谢您澄清问题。您的原始帖子没有提到 Swagger 编辑器。我以为您在使用完全不同的界面的 Swagger UI 时遇到了问题。我从未尝试过从 Swagger Editor 发送请求。你试过 Swagger UI 吗?它可能会让你对这个问题有不同的看法。 (github.com/swagger-api/swagger-ui)

标签: swagger


【解决方案1】:

您可以使用additionalProperties 定义具有动态属性的对象。例如:

parameters:
 - name: region
   in: body
   schema:
     type: object
     additionalProperties:
       type: object

这表示请求正文是一个没有固定属性的 JSON 对象。客户端可以在运行时指定任何类型(字符串、布尔值、对象等)的属性。有关additionalProperties 的更多信息,请参阅 OpenAPI 规范 v2.0。

【讨论】:

  • 我已经尝试过你的建议,但仍然无法将我的 json 附加到请求中。
猜你喜欢
  • 1970-01-01
  • 2017-03-08
  • 2020-10-11
  • 2019-09-21
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多