Swagger 通用定义

Swagger是Web API描述文档的规范。通常采用JSON或者YAML格式,此处我们统一采用JSON格式。 在Swagger文档的definitions部分中,需要先按照Dosser的规范,定义一些复用性很强的公共组件,以便在后续的工作中直接引用。

用于响应体的collection数组的每个资源的links字段。

  "LinkList": { "type":  "array", "items": { "type": "object", "properties": { "rel":  { "type": "string" }, "href": { "type": "string" }, "title": { "type": "string" }, "type": { "type": "string" } } } }

ResponseBodyCommonProperties 响应体公共属性

根据Dosser的规范,success、code、message、size、errors、meta这6个属性的数据类型完全一致,因此可用以下的结构统一描述。 响应体公共属性的定义,是为了方便后续的引用和继承。

  "ResponseBodyCommonProperties": {
    "type": "object",
    "properties": {

      "success": { "type": "boolean"                    },
      "code":    { "type": "string"                     },
      "message": { "type": "string"                     },
      "size":    { "type": "integer", "format": "int32" },
      "errors":  { "type": "object",  "properties": { "type":  "array", "items": { "type": "string" } } },

      "meta": {
        "type": "object",
        "properties": {
          "timestamp":  { "type": "integer", "format":               "int32"              },
          "request_id": { "type": "string",  "format":               "uuid"               },
          "criteria":   { "type": "object",  "additionalProperties": { "type": "string" } }
        }
      }

    }
  }

ErrorResponseBody 错误响应体

错误响应体是基于 ResponseBodyCommonProperties ,融合 Dosser 规范定义的collection。

  "ErrorResponseBody": {
    "description": "出现错误时的响应体",
    "allOf": [
      { "$ref": "#/definitions/ResponseBodyCommonProperties" },
      { "type": "object", "properties": { "collection": { "type": "array", "items": { "type": "object",  "additionalProperties": { "type": "string" } } } } }
    ]
  }