Swagger / OpenAPI - 根据授权级别的不同模型表示

时间:2017-06-10 13:37:32

标签: swagger openapi

当我根据授权级别对每个模型进行不同的表示时,如何使用Swagger模型。

例如,管理员的国家/地区模型如下所示:

(-G)

但是,只是常规用户模型看起来像这样

definitions:
  Country:
    type: object
    properties:
      id:
        type: integer
        format: int64
      name:
        type: string
        example: The Netherlands
      code:
        type: string
        example: NL
      created_at:
        type: string
        example: 2017-06-01 13:37:00
      updated_at:
        type: string
        example: 2017-06-01 14:00:00

我正在考虑将模型定义放在响应中,如下所示:

definitions:
  Country:
    type: object
    properties:
      id:
        type: integer
        format: int64
      name:
        type: string
        example: The Netherlands
      code:
        type: string
        example: NL

我不确定我的"解决方案"是处理这个问题的正确方法。

1 个答案:

答案 0 :(得分:1)

即将推出的OpenAPI规范3.0将支持oneOf定义多个可能的请求/响应主体。

在2.0中,您可以做的最多是将特定于管理员的属性定义为可选,并使用description来记录为管理员而不是普通用户返回这些属性。