要約:プロジェクト開発では、フロントエンドとバックエンドから分離されることがよくあります。つまり、バックエンド開発者は、多くのサービスインターフェイスを出力する必要があることがよくあります。 JavaまたはPHPおよびその他の言語であろうと、インターフェイスプロバイダーは、Aインターフェイスのアドレス、渡す必要があるパラメーター状況、返品値のJSONデータ形式、各フィールドの説明など、インターフェイスドキュメントを作成するために一定の努力を費やす必要があることがよくあります。もちろん、HTTP要求ヘッダー、リクエストコンテンツ、その他の情報を検討する必要があります。プロジェクトが急速に進行し、急速に反復するにつれて、バックエンドによるインターフェイス出力は、多くの場合、変更や修復などの問題に直面することがよくあります。これは、インターフェイスドキュメントもそれに応じて調整する必要があることを意味します。インターフェイスドキュメントのメンテナンスと読みやすさは大幅に削減されます。
インターフェイスドキュメントにはエネルギーの維持と適切な対面通信が必要なので、なぜ解決策を考えないのですか?最初:インターフェイスドキュメントを作成する必要はありません。 2番目:フロントエンドとバックエンドがインターフェイスの問題を通信するとき、バックエンドはURLを提供できますか?このURLで呼び出すことができるすべてのサービスインターフェイスをリストし、各サービスインターフェイスのパラメーターと返信値の説明をリストします。 3番目:バックエンドインターフェイスが通話をシミュレートできる場合、すべての問題が解決されます。この記事では、Sringbootで統合されたSwagger2フレームワークの説明に焦点を当てます。
1.1。 Swagger2依存関係を追加します
プロジェクトのpom.xmlファイルに次の依存関係を追加します。
<Dependency> groupId> io.springfox </groupid> <artifactid> springfox-swagger2 </artifactid> <version> 2.7.0 </version> </dependency> <dependency> <groupid> io.springfox </groupid> <artifactid> springfox-swox-verion </artificid>
まず、スタートアップクラスを作成する必要があります。コードは次のとおりです。
@springBootApplicationPublic class Application {public static void main(string [] args){springApplication.run(application.class、args); }}次に、上記のクラスの同じレベルのディレクトリにSWAGGER2の新しい構成クラスを作成します。
@configuration @enableswagger2public class swagger2 {@bean public docket createrestapi(){return new docket(documentationtype.swagger_2).apiinfo(apiinfo()).select().apis(requesthandlerselectors.basepackage( "com.shareniu.web")。 。建てる(); } private apiinfo apiinfo(){return new apiinfobuilder().title( "Share niuをフォローしてSpringbootソースコード分析シリーズコース"を学習します)。 .contact( "niu").license( "Copyright 2017-2018 share niu").version( "1.0").build(); }}@Configurationは、Springがこのクラスをロードする必要があることを定式化し、 @enableSwagger2アノテーションはSwagger関数を有効にする必要があります。
上記のAPIINFOは、最終的にフロントエンドに表示されます。スキャンパッケージを使用して、構成、つまりrequesthandlerSelectors.basepackageを構成します。このパッケージのコントローラーとサブパッケージは、最終的にAPIドキュメントを生成します。 (@Apiignore Annotationによって指定されたリクエストを除く)。
1.2。ドキュメントの指示を追加しました
上記のクラス宣言の後、実際に直接呼び出すことができますが、ドキュメントの読みやすさを高めるために、インターフェイスにいくつかの指示を追加する必要があります。最初にコントローラーを次のように書きましょう。
@retscontroller@requestmapping(value = "/users")public class usercontroller {static map <long、user> user = collections.synchronizedMap(new hashmap <long、user>()); static {user user = new user(); user.setage(18); user.setId(1L); user.setname( "aa"); users.put(1L、user); } @apioperation(value = "get all user list"、notes = "")@requestmapping(value = {""}、requestmethod.get)public list <user> getuserlist(){list <user> r = new arraylist <user>(user.values()); rを返します。 } @apioperation(value = "new user"、notes = "ユーザーオブジェクトからユーザーを作成する")@apiimplictparam(name = "user"、value = "user detterent entity user"、required = true、dataType = "user")@requestmapping(value = ""、method = requestmethod.post)pustuser(user(user)、usputser(ユーザー)、ユーザー(ユーザー)。ユーザー); 「成功」を返します。 } @apioperation(value = "ユーザーの詳細を取得"、notes = "URLのIDに基づいてユーザーの詳細を取得)@apiimplictparam(name =" id "、value =" user id "、rebys = true、long")@requestmapping(value = "/{id}"、requestmethod.get) } @apioperation(value = "uspetting user details"、notes = "url id"に従って更新オブジェクトを指定する ")@apiimplicitparams({@apiimplictparams(@apiimplictparams(name =" id "、bule =" user id "、exicepe = true =" long ")、@apiimplictparam(name =" user = "ユーザー="ユーザー= "ユーザー="ユーザー= "ユーザー="ユーザー= "ユーザー」 })@requestMapping(value = "/{id}"、method = requestmethod.put)public string putuser( @pathvariable long id、 @requestbody user user){user u = users.get(id); U.SetName(user.getName()); U.Setage(user.getage()); users.put(id、u); 「成功」を返します。 } @apioperation(value = "delete既存のユーザー"、notes = "urlのIDに従って削除オブジェクトを指定します")@apiimplictparam(name = "id"、value = "user id"、rebys = true、datatype = "long")@requestmapping(value = "/{id}" users.remove(id); 「成功」を返します。 }} @Apioperation:このインターフェイスの機能を説明するために使用されます。この注釈は、インターフェイスの責任、リターンヘッダー情報、メソッドのリクエスト方法(「get」、「head」、「put」、 "delete"、 "options"、 "patch")、プロトコル(http、https、ws、wss)、およびhttpステータスコードを説明できます。
@APIIMPLICTPARAM:パラメーターに説明を追加するために使用されます。必要なアイテムであるかどうか、パラメーターの説明情報、読み取り専用など、パラメーターの名前を設定できます。
上記のコードが送信されたら、スプリングブートを起動し、下の図に示すようにhttp://127.0.0.1:8080/swagger-ui.htmlにアクセスしてください。
上記の写真は2つの部分に分かれています。上部はswagger2クラスで構成され、下部はusercontrollerクラスのインターフェイスドキュメントです。
ここでは、 /ユーザーを例として使用して説明します。
次の図に示すように、[ /ユーザー]をクリックします。
上の黄色のスポットは、このインターフェイスによって返されたサンプルデータを示しています。つまり、ユーザーのデータ構造です。応答コンテンツタイプ:インターフェイスによって返されるヘッダー情報。 [試してみてください]をクリックしてください。以下に示すように:
このインターフェイスによって返されたbaody、コード、および応答ヘッダーは正常に返されました。
要約します
上記は、編集者が紹介したスプリングブートにswagger2フレームワークを統合する方法です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!