2012-02-08 24 views
34

RESTful APIドキュメントの生成に役立つツールを探しています。私のサーバーはJavaで書かれており、Spring MVCフレームワークを使用しています。サーバーにVIEWSがありません。これは100%RESTfulなサービスで、JSONを消費してJSONを吐き出すだけです。Swaggerを使用したSpring REST APIドキュメント

SwaggerがSpringアノテーションと互換性があるのだろうか?

答えて

21

現在、(少なくともWordnikの)Spring MVC swaggerモジュールはありませんが、一般的にはJVMベースのRESTサービスでswaggerを有効にするのは簡単です。

スワッガーサーバーのサポートは、コアサーバーとRESTサービスとの統合という2つの部分に分かれています。 Swagger github repoを参照してください。 Swaggerコアは、RESTサービス、パラメータ、許容値、HTTP操作などを表すドキュメントを定義します。サーバ統合は、このドキュメントをRESTフレームワークの構造に結び付けます。 WordnikはJAX-RS経由でJerseyを使用し、この統合を行うためにswagger-jaxrsをリリースしました。まもなくPlayモジュールリポジトリにリリースされるSwagger-Playモジュールもあります。

あなたは(Spring MVCのような)別のRESTフレームワーク上で闊歩を有効にしたい場合は、次の手順に従います

1)com.wordnik.swagger.core.Documentationオブジェクトを生成するためのAPIのリーダーを生成します。 バージョンとplayのバージョンを参照してください。

2)ドキュメントオブジェクトのJSON/XMLバージョンをクライアントに返すRESTエンドポイントを作成します。再び、JAX-RSおよびplay

3)リクエストをインターセプトするフィルタを追加して、リソースまたはオブジェクトレベルのアクセスを強制します。

要するに、簡単にまとめることができます。

+1

純粋なJavaベースのモジュールを作成することは可能ですか? – tbruyelle

+17

スワッガーのためのSpringMVCモジュールがここに存在する:https://github.com/martypitt/swagger-springmvc –

+0

スワッガータグをコミットできますか?こちらをご覧ください:http://stackoverflow.com/documentation/swagger/commit – Stephan

3

インタラクティブなAPIドキュメントを作成した後で(wikiスタイルのコラボレーションを必要としない)、I/O Docsはより良い解決策になるはずです。

これはnodejsとRedisで実行されています。 APIのJSONスキーマを記述するだけで、APIを記述したHTML/JSサイトが生成され、開発者はブラウザからライブで遊ぶことができます。

私のサーバー上で自分のAPIをホストする予定です(APIを見るために他の2つのソフトウェアをインストールする必要があります)が、JSONスキーマ自体は既に読み込み可能でコンパクトな構造で済みます他のプログラマーとのコラボレーションのために。それは小さなプロジェクトです。

チェックアウトしたい場合は、similar questionがあります。

20

進行中のSwagger-SpringMVC実装があります。hereおよび例hereです。

仕様v1.2は完全に実装され、サポートされています(つまり、ジェネリックをフルサポートしたモデルが生成されています)。

+0

これは数年後です。あなたが挙げたプロジェクトの例は、Swagger 0.7.0(現時点では0.8.3)です。サンプルプロジェクトがまだ関連していることを確認できますか?プロジェクトの設定に問題があります。 –

+0

@ steve.hanson 0.8.4がリリースされ、ReadMeのサンプルデモへのリンクが更新されました。また、構成も大幅に簡素化されています –

5

Spring MVC用のSwaggerの別の実装はswagger4spring-webです。

Swagger-SpringMVCに似ており、すべてのSwaggerアノテーションをサポートし、戻り値の型とパラメータ用のJSONスキーマを生成します。また、注釈をぼかしなくても機能します。

3

Swagger 2.0は、Swaggerの最新バージョンです。

さまざまなニーズに応じて利用できるスワッガーのさまざまなバリエーションがあります。

io.swaggerはswaggerライブラリ用のパッケージで、Springと結合するには別々のスプリングジャーが必要です。これは、swaggerのバージョン2です。

io.springfoxはSpringfox Swagger2で、SwaggerはSpringと統合されています。

com.mangofactoryは、Spring Web MVCフレームワークと統合されています。

関連する問題