如何从示例JSON生成Swagger #definition

use*_*665 5 json swagger

从宠物商店示例中获取以下#definition。给定#definition部分,可以生成JSON结构

例如 将定义转换为JSON

给定一个较大的复杂JSON文件,是否可以执行相反的操作?

给定下面的JSON结构,我可以获取为保存某些输入而生成的swagger文件的#defintion部分

{
  "variable": "sample",
  "object1": {
    "obj-field1": "field 1 of object",
    "obj-field2": "field 2 of object",
    "anArray": [
      "Value 1",
      {
        "anArrayObj1": "obj1fieldinarray",
        "anArrayObj2": "obj2fieldinarray"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 15

1 - 在http://www.mocky.io 中粘贴回复并获取回复的链接

2 - 转到https://inspector.swagger.io/并调用您的示例响应

3 - 从“历史”中选择调用,然后单击“创建 API 定义”

4 - 招摇定义将在https://app.swaggerhub.com/ 上提供

  • 这将创建一个基本的 Swagger/OpenAPI 文档,但它不包含 OP 特别想要的“定义”部分 (4认同)

Hel*_*len 9

您可以使用此JSON至OpenAPI模式转换器:https ://roger13.github.io/SwagDefGen/

GitHub项目

不过我还没有亲自使用过它,所以不确定它有多好。


由于OpenAPI使用JSON模式的子集,因此您也可以使用JSON模式生成器之一,但是您可能需要手动调整生成的定义以使其与OpenAPI兼容。


Ozz*_*ech 6

您可以使用mock-to-openapi cli 工具从mock 生成OpenAPI YAML文件JSON

\n
npm install --global mock-to-openapi\n
Run Code Online (Sandbox Code Playgroud)\n

然后运行该文件夹中所有文件的转换*.json

\n
mock-to-openapi ./folder/*.json`\n
Run Code Online (Sandbox Code Playgroud)\n

例如,让我们json反对:

\n
{\n    "title": "This is title",\n    "author": "Roman O\xc5\xbeana",\n    "content" : "This is just an example",\n    "date": "2020-05-12T23:50:21.817Z"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

工具mock-to-openapi转换JSON为OpenAPI规范如下:

\n
type: object\nproperties:\n  title:\n    type: string\n    example: This is title\n  author:\n    type: string\n    example: Roman O\xc5\xbeana\n  content:\n    type: string\n    example: This is just an example\n  date:\n    type: string\n    format: date-time\n    example: 2020-05-12T23:50:21.817Z\n
Run Code Online (Sandbox Code Playgroud)\n