web-dev-qa-db-ja.com

Springを使用する利点は何ですかRESTドキュメントをSwaggerと比較して

春RESTドキュメントが最近リリースされ、ドキュメントには次のように書かれています:

このアプローチにより、Swaggerなどのツールによって課せられる制限から解放されます。

したがって、私は、Swaggerと比較してSpring REST Docsを使用する方が好ましい場合、およびそれが解放する制限を確認します。

32
evgeniy44

私は他のトピックの中であなたの質問に触れるプレゼンテーションをここで見ました:

https://www.youtube.com/watch?v=k5ncCJBarRI&t=26m58s

  • Swaggerはハイパーメディアをまったくサポートしていません/ URI中心です

  • Swaggerによるコードの検査方法は、コードよりも遅れることがあります。 Swaggerが更新されない限り、Swaggerが理解できず、適切に処理されないコードを変更する可能性があります。

  • Swaggerには多くの注釈が必要であり、注釈のAPIドキュメントに必要な説明テキストを含めるのは面倒です。

  • Swaggerがコードの検査から理解できないことがいくつかあります。

いずれにせよ、これらはほんの数点です。プレゼンターは、私よりもはるかに優れた議論を行います。

24
Edgar Ngwenya

私は、Swaggerを取り巻くコンテキスト、それが何であるか、および何でないかを説明するためにチャイムを鳴らすと思いました。これはあなたの質問に答えるのに役立つと思います。

Swagger 2.0は、Microsoft Azure、Paypal、SwaggerHub.com、DynamicApis.comなどの多くのビッグネームやビッグプラットフォームで採用されています。覚えておくべきことは、 仕様 。フレームワークではありません。 APIを表すSwagger 2.0 JSONファイルを構築するために、API情報を参照してコードをクロールするSwagger出力を生成するために構築された frameworks がたくさんあります。 APIが表示されるSwagger UIは、このSwagger 2.0 JSONファイルから直接駆動されます。 それをチェックアウトするためのフィドラー

「swaggerを使用」できるように作成されたフレームワークは、Swaggerが機能する方法ではないことに注意してください(つまり、サードパーティフレームワークの実装次第です)。 Swagger 2.0ドキュメントの生成に使用しているフレームワークでUIが機能しない場合は、Swaggerアーティファクトを生成してテクノロジーを交換する別のフレームワークを見つけることができるはずです。

お役に立てれば。

11
Jerrod Horton

Swaggerと特定のスプリングスタックにはいくつかの制限があります。

たとえば、リクエストマッピングで「param」を使用すると、同じURL ansで複数のメソッドを定義できるため、コードを簡略化できます。しかし、swaggerは1つの方法だけを示します

5
Sbert

From Spring REST docs

Springの目的RESTドキュメントは、正確で読みやすいRESTfulサービスのドキュメントを作成するのに役立ちます

このテスト駆動型のアプローチは、サービスのドキュメントの正確性を保証するのに役立ちます。スニペットが正しくない場合、それを生成するテストは失敗します。

春REST docsの利点:

  • ドキュメントはテストコードで記述されているため、多くの注釈や説明でメインコードが過負荷にならない
  • 関連するテストに合格する必要があるため、生成されたドキュメントと例は正確です
  • ドキュメントはより具体的で説明的なスニペットを提供できます
  • フォーマットは公開に適しています

春REST docsの欠点:

  • さらに作業が必要
  • ドキュメントはリクエスト/レスポンスの例を提供しますが、リクエストを変更して試すためのインタラクティブなツールは提供しません

Swaggerの利点:

  • コードからの迅速な自動生成
  • インタラクティブなリクエストの実行-受け入れテストに使用できます
  • OpenAPI 仕様を中心に構築

Swaggerの欠点:

  • より説明的なドキュメントの場合、多くの注釈が必要になります
  • テストはドキュメンテーションとは関係がないため、ドキュメンテーションが実際と異なる場合があります
1
Justas

Swaggerの欠点の1つは、循環的な依存関係があるモデルを処理できないことです。モデルに循環依存関係があり、swaggerが有効になっている場合、スプリングブートサーバーがクラッシュします。

0
user1702260