如何根据http方法要求字段?

时间:2016-09-06 07:48:32

标签: swagger swagger-2.0

我正在尝试使用招摇语来编写JSON API并且我遇到了一些问题,因为某些字段是否需要,具体取决于所使用的方法。

以下是更新规范中的一行

  

资源对象必须包含type和id成员。

这里有一个来自创建规范

  

资源对象必须至少包含一个类型成员。

所以目前我有

Customer: 
    title: Customer
    type: object
    required: ["id", "type"]
    properties:
      id:
        type: string
      type:
        type: string
      attributes:
        type: object
        properties:
          name:
            type: string
          address: 
            type: string

我要做的是required: ["id", "type"]方法有patchrequired: ["type"]方法只有post。是否可以在不重新定义其他客户的情况下实现?

1 个答案:

答案 0 :(得分:3)

您可以使用以下方法实现:

  Customer: 
    title: Customer
    type: object
    required:
      - type
    properties:
      id:
        type: string
      type:
        type: string
      attributes:
        type: object
        properties:
          name:
            type: string
          address: 
            type: string
  Customer_patch: 
    type: object
    required:
      - id
    allOf:
      - $ref: '#/definitions/Customer'

您必须重新定义另一个客户以放置其他必填字段,但您可以重复使用实际的客户定义对象。