2016-09-01 10 views
11

JSONファイルからAPI仕様を作成しましたが、ファイルがAPI仕様に準拠しているかどうかを検証しようとしています。Swagger APIスキーマに対してJSONを検証しています

JSONスキーマに対して有効なツールがいくつかありますが、Swagger(APIスキーマを作成するためのツール)で作成されたスペックを検証するツールはありませんでした。私が見つけた唯一の解決策はSwagger-Editorでクライアント/サーバーを生成することですが、それはかなり面倒です。

スワッガースキーマに対してJSONを検証するための既存のツールはありますか?あなた闊歩JSONがホストされている場合は

+1

仕様が有効なOpenAPI(fka。Swagger)仕様であることを検証するか、この仕様の実装がJSONスキーマに関して有効なJSONを生成することを検証しますか? –

+1

OpenAPI仕様に対してJSONが有効かどうかを確認することに関する質問だけです。 –

+0

https://medium.com/@betz.mark/validate-json-models-with-swagger-and-bravado-5fad6b21a825を見ましたか? –

答えて

9

アルノー2つの別々の質問はここにあることが正しいです。

あなたの仕様は、有効なOpenAPIの(FKA。SWAGGER)であることを検証しますかは

をスペックあなたは

  • online Swagger editorにあなたのスペックをコピーすることができ、それがエラーをスローします。 sourceを急いで見ると、それらのエラーを作成するために何が使用されているのかわかりませんが、サーバーに接続しているとは思われません。
  • Java用に公式swagger-parserを使用してください。
  • JavaScript(ブラウザまたはノード)に非公式のswagger-parserを使用します。

この仕様の実装がJSONスキーマに関して有効なJSONを生成することを検証しますか?

つまり、リクエストまたはレスポンスボディからのJSONは正しいですか?

スワッガーは、schema objectsのJSONスキーマと呼ばれる別の標準を使用しています。エンドポイントやメタデータではなく、実際にJSONを記述しています。 SwaggerはJSONスキーマのサブセットを使用します(欠落:oneOf,patternPropertiesなど)。そのためには、JSONスキーマバリデーターを使用することができます。 37 listed hereがあります。私はthis online validatorにshoutoutを与え、YAMLスキーマもサポートします。

しかし、SwaggerはJSON APIのサブセットに依存していると私は嘘をつきました。 SwaggerにはJSONスキーマの一部ではない特別な意味を持つ固定フィールドがいくつかあります。それらの1つは多型に使用されるdiscriminatorです。 私はdiscriminatorを処理できるSwaggerバリデーターに気づいていません。 swaggerといくつかのバリデーションを行うためのfair number of toolsがありますが、多くは放棄されています。古いバージョンではなく、フィーチャー・コンプリートではなく、他のテクノロジーと結びついているなどです。成熟した、よく管理された図書館がある場合は、私が知りたいことがあります。

+0

私は同じ状況を抱えており、これは役に立ちました。ちょっとした作業で、Swaggerで定義されたJSONスキーマを使用してサーバーの応答ペイロードを検証できる独自のスクリプトを作成できました。私はそれをするためにいくつかのExpressミドルウェアを書いた。 Swaggerを使用して私が望むことをするのではなく、依存するスキーマオブジェクトを使用できます。ありがとう! – Tina

+0

もう1つは、外部スキーマバリデータを使用せずにどのように実装するのですか?私はちょうど(swagger)スキーマに対してスキーマのインスタンスを検証するだけです。どうすればいい?ありがとう。 – Nikhita

+0

内部的には、swaggerがz-schema jsonバリデーターを使用しているように見えるので、理論的にはどの機能が利用可能かを見ることになりますか? https://github.com/zaggino/z-schema – chrismarx

関連する問題