1。はじめに
Swaggerの目標は、REST APIの言語に依存しない標準インターフェイスを定義し、ソースコードにアクセスせずにユーザーがコンピューターサービスの機能を発見および理解できるようにすることです。 Swaggerによって正しく定義されると、ユーザーは最小限の実装ロジックでリモートサービスを理解してやり取りできます。低レベルのプログラミングによって作成されたインターフェイスに似ています。
2。実装手順
1. Maven依存関係を追加します
<Dependency> groupId> io.springfox </groupid> <artifactid> springfox-swagger2 </artifactid> <バージョン> 2.6.1 </version> </dependency>
2。Swagger Configurationクラス
@configuration @enableSwagger2 // @componentscan(basepackageclasses = jgbjbaseinfocompanyapi.class)または@componentscan(basepackages = "com.summersoft.ts.schedule.supervision.controller") swaggerspringmvcplugin(){return new docket(documenttationtype.swagger_2).apiinfo(apiinfo()).select()// documents.apis .apis(requesthandlerselectors.any())//すべてのapis.paths.pathses.pathselectors(); } /** * API特定の情報 * * @return * /private apiinfo apiinfo apiinfo(){apiinfo apiinfo = new apiinfo( "dooring service platform api document"、// title "、// description" 1.0 "、// release"、 "、"、 " /sight" // sight ")、"、 "// sight"、 "、" //3。swaggerノート
Swaggerは、SwaggerConfigで構成されたパッケージパスの下でSwaggerアノテーションでクラスファイルをスキャンし、最後に一連のスキャンされたJSONファイルを生成します...
swagger annotation説明:https://github.com/swagger-api/swagger-core/wiki/annotations#apimodel
@API:クラスの機能を説明するためにクラスで使用されます。古いバージョンで使用される値は、スキャンによって生成されるクラス名を表すことに注意する必要があります。 1.5以降、タグを使用してクラス名を表す必要があります。
@api(tag = "usercontroller"、description = "ユーザー関連API")
@Apioperation:メソッドの機能を説明するための方法で使用されます
@apioperation(value = "find user"、notes = "find user"、httpmethod = "get"、produces =
mediatype.application_json_utf8_value)
@Apiparam:パラメーターの意味を示すためにパラメーターリストで使用されます
@apiparam(value = "現在の時間(月)を作成または更新する")整数時間
@APIIMPLICTPARAMS:メソッドにパラメーターの説明のセットを含めるために使用されます
@APIIMPLICTPARAM: @APIIMPLICTPARAMSアノテーションで使用され、リクエストパラメーターのさまざまな側面を指定します
paramtype:パラメーターを配置する場所
ヘッダー>リクエストパラメーターの取得:@RequestHeader
クエリ>パラメーターの取得要求:@RequestParam
PATH(RESTFULインターフェイス用)>リクエストパラメーターの取得: @pathvariable
ボディ(一般的に使用されていません)
フォーム(一般的に使用されていません)
名前:パラメーター名
データタイプ:パラメータータイプ
必須:パラメーターを渡す必要があるかどうか
値:パラメーターの意味
defaultValue:パラメーターのデフォルト値
@apiimplicitparams({
@apiimplicitparam(name = "id"、value = "inquired"、必須= true、datatype = "long"、paramtype = "path")、
})
@Apiresponses:一連の応答を表すために使用されます
@Apiresponse: @Apiresponsesで使用され、通常、エラー応答情報を表現するために使用されます
コード:番号、たとえば400
メッセージ:「記入されていないリクエストパラメーター」などの情報
応答:例外をスローするクラス
@apiresponses(value = {
@apireSponse(code = 400、message = "no name revide")
})
@Apimodel:モデルの情報について説明します(これは通常、@RequestBodyシナリオを使用して投稿を作成するときに使用されます。リクエストパラメーターは、@APIIMPLICTPARAM ANNOTATIONを使用して説明できません)
@apimodel(value = "ユーザーエンティティクラス")
@ApimodelProperty:モデルのプロパティを説明します
@apimodelproperty(value = "login user")
3。swagger-ui
上記の構成情報を使用すると、Swaggerはすべてのクラス情報をスキャンしてJSONファイルを生成するのに役立ちます。 JSONファイルを人々に友好的にするには、Swagger-UIコンポーネントを使用する必要があります。
1。Swagger-UIの指示:https://swagher.io/docs/swagger-tools/
2. Swagger-UIをダウンロードして、WebAppディレクトリに新しいSwaggerディレクトリを作成し、DistディレクトリにSwaggerディレクトリにファイルを配置し、index.htmlファイルを変更します。デフォルトでは、接続http://petstore.swagger.io/v2/swagger.jsonからAPIのJSONを取得する必要があります。ここでは、URL値をhttp:// {ip}に変更する必要があります:{port}/{projectname}/api-docs、{}の値は自分の状況に応じて記入されます。
たとえば、私のURL値は次のとおりです。
http:// localhost:8080/vouchers/api-docs。さらに、スプリングMVCのリソースリリースを構成する必要があります:<MVC:リソースマッピング= "/swagger/**"/swagger/"/>
ヒント:デフォルトのDISTディレクトリにはそれほど多くのファイルはありません。 Swagger-UIはカスタマイズできます。これは私たちのプロジェクトで使用されています。プロジェクト名を変更する必要はありません。プロジェクト名は動的に取得されます:https://files.cnblogs.com/files/jmcui/swagger.zip
3.表示されているインターフェイスを並べ替える方法:
Apissorter: API/タグリストに並べ替えを適用します。 「alpha」(名前でソート)または関数(sortの機能についてはarray.prototype.sort()を参照)にすることができます。デフォルトは、サーバーによって返される注文が変更されていないままであることです。
OperationsSorter:各APIの操作リストにソートを適用します。 「アルファ」(アルファニュメーリでソート)、「メソッド」(httpメソッドでソート)または関数(array.prototype.sort()を参照して、並べ替え関数がどのように機能するかを知ることができます)です。デフォルトは、サーバーによって返される注文が変更されていないままであることです。
SpringMVCでSwaggerプラグインを構成するための上記のチュートリアル(共有)は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。