多くのプロパティを持つREST APIによって生成されたJSONファイルがいくつか与えられました。JSONをJSONに変換するスキーマドラフト4をSwagger 2.0と互換性があります
私はこのAPIにSwagger 2.0定義を作成しました。これに対応するスキーマを応答に付ける必要があります。
主な問題:このJSONファイルには多数のプロパティがあります。私はスキーマを手作業で書くと時間がかかり、多くの間違いを犯します。そして、それが私が説明する必要がある唯一のAPIではありません。
JSONをJSONスキーマに変換するいくつかのツールがありますが、私が誤解していない場合、Swaggerは他のオブジェクト定義に$ refsしか持たないので、私が見つけたツールはツリー構造スキーマ。 私の質問:JSON(またはJSONスキーマ)をSwagger 2.0互換のものに変換するツールはありますか?
注:私はYAMLで働いていますが、問題はありませんか?私は必要なもの例えば
、:私のJSONドキュメントの
List of Movements:
type: "array"
items:
$ref: "#/definitions/Movement"
Movement:
properties:
dateKey:
type: "string"
movement:
$ref: "#/definitions/Stock"
additionalProperties: false
Stock:
properties:
stkUnitQty:
type: "string"
stkDateTime:
type: "string"
stkUnitType:
type: "string"
stkOpKey:
type: "string"
additionalProperties: false
:
[
{
"dateKey": "20161110",
"stkLvls": [
{
"stkOpKey": "0",
"stkUnitType": "U",
"stkDateTime": "20161110T235010.240+0100",
"stkUnitQty": 30
}
]
},
{
"dateKey": "20161111",
"stkLvls": [
{
"stkOpKey": "0",
"stkUnitType": "U",
"stkDateTime": "20161111T231245.087+0100",
"stkUnitQty": 21
}
]
}
]
しかし、何http://jsonschema.net/#/は私を与える:
---
"$schema": http://json-schema.org/draft-04/schema#
type: array
items:
type: object
properties:
dateKey:
type: string
stkLvls:
type: array
items:
type: object
properties:
stkOpKey:
type: string
stkUnitType:
type: string
stkDateTime:
type: string
stkUnitQty:
type: integer
required:
- stkOpKey
- stkUnitType
- stkDateTime
- stkUnitQty
required:
- dateKey
- stkLvls
私はそれに新たなんです好奇心は、深く説明することをためらうことはありません。
ありがとうございました!
こんにちはトム&答えてくれてありがとう:それはこれを生成
を。 https://github.com/OAI/OpenAPI-Specification/blob/master/examples/v2.0/yaml/uber.yaml上で、定義マークにレベルが1つしかないことがわかります。他の型を使う必要があるときは、$ ref: '#/ definitions/Activity'を他の型にします。 JSONスキーマv4では、必須ではありません。 どのような解決策ですか? – Cwellan