Lumenマイクロサービス生成Swaggerドキュメント
phperとしてLumenフレームワークを使用してマイクロサービスを開発する場合、APIドキュメントの書き込みは常に少なくありません.比較的ポピュラーな方法はswaggerを使用してAPIドキュメントを書くことですが、Java言語のオリジナルサポートannotationとは異なり、phpはswaggerドキュメントを単独で維持するか、注釈にannotationsを追加して類似の機能を実現するしかありません.しかし,注釈にSwagger注釈を書くのは非常に苦痛で,コードヒントがなく,フォーマットされていない.
この文書では、phpstormのannotationsプラグインを使用して、Lumenマイクロサービスプロジェクトを開発する際に(Laravelプロジェクトは他のphpプロジェクトと似ています)コードで注釈を使用してswaggerドキュメントを作成する方法を説明します.
本文は引き続き修正して更新して、最新の内容は私のGITHUBの上のプログラム猿の成長計画プロジェクトを参考にしてください、スターを歓迎して、もっとすばらしい内容はfollow meをお願いします.
フレーム構成
現在の最新のLumen 5.7を用いて実証した.プレゼンテーションコードはgithubに置いてありますが、興味のある方は参考にしてください
インストール依存
Lumenプロジェクトでは、まずcomposerを使用してSwaggerLumeプロジェクト依存をインストールする必要があります.
プロジェクト構成
そして、
プロジェクトのルートディレクトリで、実行コマンド
この命令を実行した後、主に以下のいくつかの変更を体現する. が追加する. をプレビューするための
プロファイルから次の重要な情報を取得できます. api.title生成APIドキュメント表示タイトル routes.api生成されたAPIドキュメントUIにアクセスするためのルーティングアドレスのデフォルトは である. routes.docsは、生成されたAPIドキュメントの原文、jsonフォーマットにアクセスするために使用され、デフォルトのルーティングアドレスは である. paths.docsとpaths.docs_jsonコンビネーションはapi-docs.jsonファイルのアドレスを生成し、デフォルトは が生成する.
構文の自動ヒント
純粋な手書きswagger注釈は間違いなく、間違いやすいので、ドキュメントの参考文法を繰り返し見る必要があります.そのため、注釈の注釈文法を自動的に提示できるプラグインをインストールする必要があります.私たちがよく使うIDEはphpstormです.phpstormではPHP annotationプラグインをインストールする必要があります.
プラグインをインストールした後、Swaggerドキュメントを書くときに、コード自動プロンプト機能があります.
文書を書く
Swaggerドキュメントには、特定のAPIに関係のない多くの情報が含まれています.
次に、ビジネスロジックコントローラでAPIを書くことができます.
ここでは、応答結果において、SwaggerControllerで定義されている
オブジェクトを返して他のオブジェクトを参照
ドキュメントの生成
次のコマンドを実行すると、ドキュメントを生成できます.生成されたドキュメントは
ドキュメントのプレビュー
ブラウザアクセスhttp://アクセスアドレス/docsを開くと、次のように表示されます.
http://アクセスアドレス/api/documentationにアクセスすると、
インタフェース詳細展開
その他
この文書では、Lumenプロジェクトでコード注釈を使用してSwaggerドキュメントを自動的に生成し、phpstormのコードヒント機能に合わせる方法を簡単に説明しますが、これらを習得するにはまだ十分ではありません.Swagger-phpプロジェクトのExamplesカタログには多くの使用例が含まれています.参考にしてください.
チームプロジェクトではswaggerドキュメントが使用されていますが、ドキュメントを管理する場所が必要ですね.ここではWizardプロジェクトをお勧めします.このプロジェクトはチームコラボレーション用のドキュメント管理ツールで、MarkdownドキュメントとSwaggerドキュメントをサポートしています.興味があるなら試してみてください.
この文書では、phpstormのannotationsプラグインを使用して、Lumenマイクロサービスプロジェクトを開発する際に(Laravelプロジェクトは他のphpプロジェクトと似ています)コードで注釈を使用してswaggerドキュメントを作成する方法を説明します.
本文は引き続き修正して更新して、最新の内容は私のGITHUBの上のプログラム猿の成長計画プロジェクトを参考にしてください、スターを歓迎して、もっとすばらしい内容はfollow meをお願いします.
フレーム構成
現在の最新のLumen 5.7を用いて実証した.プレゼンテーションコードはgithubに置いてありますが、興味のある方は参考にしてください
https://github.com/mylxsw/lumen-swagger-demo
インストール依存
Lumenプロジェクトでは、まずcomposerを使用してSwaggerLumeプロジェクト依存をインストールする必要があります.
composer require darkaonline/swagger-lume
プロジェクト構成
bootstrap/app.php
ファイルでは、次の構成のコメント(約26行)を削除し、Facadesサポートを有効にします.$app->withFacades();
SwaggerLume
プロジェクトのプロファイルを有効にし、Register Container Bindings
セクションの前に追加$app->configure('swagger-lume');
そして、
Register Service Providers
部に、SwaggerLume
のServiceProviderを登録する$app->register(\SwaggerLume\ServiceProvider::class);
プロジェクトのルートディレクトリで、実行コマンド
php artisan swagger-lume:publish
はswagger関連の構成を発行します.この命令を実行した後、主に以下のいくつかの変更を体現する.
config/
ディレクトリには、プロジェクトのプロファイルswagger-lume.php
resources/views/vendor
ディレクトリには、生成されたAPIドキュメントswagger-lume/index.blade.php
ビューファイルが生成する.プロファイルから次の重要な情報を取得できます.
/api/documentation
/docs
storage/api-docs/api-docs.json
であり、php artisan swagger-lume:generate
コマンドを実行すると、そのファイル構文の自動ヒント
純粋な手書きswagger注釈は間違いなく、間違いやすいので、ドキュメントの参考文法を繰り返し見る必要があります.そのため、注釈の注釈文法を自動的に提示できるプラグインをインストールする必要があります.私たちがよく使うIDEはphpstormです.phpstormではPHP annotationプラグインをインストールする必要があります.
プラグインをインストールした後、Swaggerドキュメントを書くときに、コード自動プロンプト機能があります.
文書を書く
Swaggerドキュメントには、特定のAPIに関係のない多くの情報が含まれています.
app/Http/Controllers
には、ビジネスロジックを実装せず、共通のドキュメント情報を配置するためにのみ使用されるSwaggerController
が作成されています.
次に、ビジネスロジックコントローラでAPIを書くことができます.
name = $request->input('name');
$resp->id = 123;
$resp->age = $request->input('age');
$resp->gender = $request->input('gender');
$prop1 = new DemoAdditionalProperty();
$prop1->key = "foo";
$prop1->value = "bar";
$prop2 = new DemoAdditionalProperty();
$prop2->key = "foo2";
$prop2->value = "bar2";
$resp->properties = [$prop1, $prop2];
return $resp;
}
}
ここでは、応答結果において、SwaggerControllerで定義されている
ApiResponse
を参照し、定義されていないExampleResp
オブジェクトを参照し、app\Http\Responses
ディレクトリ(自分で作成したディレクトリ)でExampleRespオブジェクトを実現し、応答オブジェクトをこのディレクトリに配置することができます.
オブジェクトを返して他のオブジェクトを参照
ドキュメントの生成
次のコマンドを実行すると、ドキュメントを生成できます.生成されたドキュメントは
storage/api-docs/api-docs.json
です.php artisan swagger-lume:generate
ドキュメントのプレビュー
ブラウザアクセスhttp://アクセスアドレス/docsを開くと、次のように表示されます.
http://アクセスアドレス/api/documentationにアクセスすると、
インタフェース詳細展開
その他
この文書では、Lumenプロジェクトでコード注釈を使用してSwaggerドキュメントを自動的に生成し、phpstormのコードヒント機能に合わせる方法を簡単に説明しますが、これらを習得するにはまだ十分ではありません.Swagger-phpプロジェクトのExamplesカタログには多くの使用例が含まれています.参考にしてください.
チームプロジェクトではswaggerドキュメントが使用されていますが、ドキュメントを管理する場所が必要ですね.ここではWizardプロジェクトをお勧めします.このプロジェクトはチームコラボレーション用のドキュメント管理ツールで、MarkdownドキュメントとSwaggerドキュメントをサポートしています.興味があるなら試してみてください.