【问题标题】:How to ommit object fields from a post request in swagger如何在大摇大摆的发布请求中省略对象字段
【发布时间】:2016-10-07 01:46:00
【问题描述】:

假设我定义了一个用户模型:id、first_name、last_name、created_at,并且我在 swagger 中为它定义了一个对象。

创建用户的 POST 请求需要 first_name 和 last_name。我怎么会大摇大摆地写呢? Swagger 需要一个对象,我应该为此创建一个新对象吗?

【问题讨论】:

  • 您觉得我的回答有帮助还是需要进一步的帮助?

标签: swagger


【解决方案1】:

怎么样

myuser:
  allOf:
  - $ref: '#/definitions/myuserbase'
  - type: object
    properties:
      id:
        description: |
          Unique identifier for the classifier.
        type: string
        example: user1
      created_at:
        description: |
          Date and time the user was created.
        type: string
        format: date-time          
    required:
      - id

myuserbase:
  type: object
    properties:
      first_name:
        description: |
          First name of the user
        type: string
      last_name:
        description: |
          Last name of the user
        type: string 
    required:
      - first_name
      - last_name

【讨论】:

    【解决方案2】:

    您可以将first_namelast_name标记为必填字段。这是一个例子:

    required:
      - first_name
      - last_name
    

    参考:https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/test/resources/2_0/petstore.yaml#L658-L660

    (也就是说,不需要创建单独的对象)

    【讨论】:

    • 但是在文档中它仍然会令人困惑。我更多地指的是我有一个带有“id”字段的用户对象的情况,该字段在创建用户时生成。发布请求需要一个没有“id”的“用户”对象。如果我将“id”标记为不需要,API 的用户可能会认为“id”是可选的并传递它
    猜你喜欢
    • 2022-06-17
    • 1970-01-01
    • 2021-07-09
    • 2018-08-17
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    相关资源
    最近更新 更多