首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swagger,YAML:除了一个字段之外,请求和响应对象模型是相同的

Swagger,YAML:除了一个字段之外,请求和响应对象模型是相同的
EN

Stack Overflow用户
提问于 2016-07-07 22:28:46
回答 1查看 889关注 0票数 2

我为一个API定义了一些傲慢的定义,我遇到了这个用例。

请求和响应对象模型定义看起来完全相同。但是,对象中有一个字段在get操作期间返回更多枚举值,但限制put操作的最小枚举值。是否可以有条件地引用同一字段的不同枚举值,从而避免重复定义。为了克服这一限制,我不想为请求和响应重新创建整个模型定义。

这是我的例子,

代码语言:javascript
运行
复制
definitions:
  EntryRequest:
    properties: 
      entries:
        $ref: '#/definitions/EntityResponse/properties/entries'
  EntryResponse:
    properties:
      entries:
        type: array
        items:
          $ref: '#/definitions/Entry'
  Entry:
    properties:
      entryStatus:
        type: string
        enum:
          - ENABLE
          - DISABLE
          - IN_PROGRESS

在上面,有两件事我很担心。1)对于EntryRequest,API只接受启用/禁用PUT操作,而API在GET操作中返回所有这些操作。我想有条件地创建对entryStatus属性的引用。另外,除了entryStatus之外,对于EntryRequest和EntryResponse对象模型,一切都是相同的。为了表示entryStatus字段的差异,我也不想重复这一点。

有办法吗?

编辑:当我了解到更多这方面的内容时,我感觉这更像是一个与yaml相关的查询。但我想在这里看看是否有人遇到过类似的情况,以及他们是如何处理的。或者看看能不能给我建议如何处理这件事。在同一个领域里标记不同的枚举,我想我可以这样做,

代码语言:javascript
运行
复制
RequestEntryStatus:
  type: string
  enum: &requestStatus
    - ENABLE
    - DISABLE

ResponseEntryStatus:
  type: string
  enum:  &responseStatus
    - ENABLE
    - DISABLE
    - IN_PROGRESS

Entry:
  properties:
    entryStatus: *requestStatus

但是,这仍然会强制我创建请求和响应对象的副本,并将其映射到entryStatus字段。我想知道是否有更好的方法来处理这件事。

EN

回答 1

Stack Overflow用户

发布于 2017-04-11 19:32:12

请求和响应对象模型定义看起来完全相同。但是,对象中有一个字段在get操作期间返回更多枚举值,但限制put操作的最小枚举值。是否可以有条件地引用相同字段的不同枚举值,从而避免重复定义。,我不想为了克服这个限制而重新创建请求和响应的整个模型定义。

不,这不可能。

如果您想避免重复,您可以在所有枚举值中使用单个模型,但在description中口头记录某些值仅用于响应,而不用于请求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38256261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档