如何在 Swagger 示例中使用 ref?

Roh*_*war 5 php swagger swagger-ui swagger-2.0

JSON 规范:

\n\n
"responses": {\n          "200": {\n            "description": "\xd0\xa3\xd1\x81\xd0\xbf\xd0\xb5\xd1\x88\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82 \xd1\x81\xd0\xb5\xd1\x80\xd0\xb2\xd0\xb8\xd1\x81\xd0\xb0",\n            "schema": {\n              "$ref": "#/definitions/BaseResponse"\n            },\n            "examples": {\n              "application/json": {\n                "status": true,\n                "response": {\n                  "$ref": "#/definitions/Product"\n                },\n                "errors": null\n              }\n            }\n          }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

结果:\n在此输入图像描述

\n\n

但是我需要:

\n\n
{\n  "status": true,\n  "response": {\n      "ProductNumber": "number",\n      "Barcode": "number",\n      "Length": 12,\n      "Width": 34,\n      "Height": 423,\n      "Volume": 1232\n    }\n  },\n  "errors": null\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我如何使用 $refs 到示例数组中进行自定义格式响应?\n这是一个典型案例,但我找不到它的文档。感谢您的反馈。

\n

Hel*_*len 1

内联示例不支持$ref- 示例必须是完整示例:

\n\n\n\n
      "responses": {\n        "200": {\n          "description": "\xd0\xa3\xd1\x81\xd0\xbf\xd0\xb5\xd1\x88\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82 \xd1\x81\xd0\xb5\xd1\x80\xd0\xb2\xd0\xb8\xd1\x81\xd0\xb0",\n          "schema": {\n            "$ref": "#/definitions/BaseResponse"\n          },\n          "examples": {\n            "application/json": {\n              "status": true,\n              "response": {\n                "ProductNumber": "number",\n                "Barcode": "number",\n                "Length": 12,\n                "Width": 34,\n                "Height": 423,\n                "Volume": 1232\n              },\n              "errors": null\n            }\n          }\n        }\n      }\n
Run Code Online (Sandbox Code Playgroud)\n\n

responses.<code>.examples您可以在中指定示例值,而不是使用BaseResponse,Swagger UI 将使用这些值。

\n\n

例如,您可以将完整的示例添加到您的BaseResponse架构中:

\n\n
      "responses": {\n        "200": {\n          "description": "\xd0\xa3\xd1\x81\xd0\xbf\xd0\xb5\xd1\x88\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82 \xd1\x81\xd0\xb5\xd1\x80\xd0\xb2\xd0\xb8\xd1\x81\xd0\xb0",\n          "schema": {\n            "$ref": "#/definitions/BaseResponse"\n          },\n          "examples": {\n            "application/json": {\n              "status": true,\n              "response": {\n                "ProductNumber": "number",\n                "Barcode": "number",\n                "Length": 12,\n                "Width": 34,\n                "Height": 423,\n                "Volume": 1232\n              },\n              "errors": null\n            }\n          }\n        }\n      }\n
Run Code Online (Sandbox Code Playgroud)\n\n

或使用属性级示例:

\n\n
  "definitions": {\n    "BaseResponse": {\n      "type": "object",\n      "properties": {\n        "status": {\n          "type": "boolean"\n        },\n        ...\n      },\n      "example": {    // <------ schema-level example\n        "status": true,\n        "response": {\n          "ProductNumber": "number",\n          "Barcode": "number",\n          "Length": 12,\n          "Width": 34,\n          "Height": 423,\n          "Volume": 1232\n        },\n        "errors": null\n      }\n    }\n  }\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想指出的是,"errors": null"example": null在 OpenAPI 2.0 (fka Swagger) 中实际上并不有效,因为它不支持可为 null 的类型。支持可空类型

\n