ホームページ >バックエンド開発 >PHPチュートリアル >PHP と Laravel を統合して Swagger インターフェイスのドキュメントとテストを実装します

PHP と Laravel を統合して Swagger インターフェイスのドキュメントとテストを実装します

王林
王林オリジナル
2023-06-25 09:32:461096ブラウズ

今日のオープン化が進むインターネット環境では、API がさまざまなアプリケーション間の通信の主な手段となっており、API インターフェイスを使用すると、さまざまなアプリケーションを簡単に接続できるため、より複雑なアプリケーション シナリオを実現できます。ただし、API インターフェイス ドキュメントの作成とメンテナンス、およびインターフェイスのテストは比較的難しいタスクです。この問題を解決するために、Swagger インターフェイスのドキュメントとテスト ツールが登場しました。

Swagger は、RESTful スタイルの Web サービスを生成、記述、呼び出し、視覚化するための標準化された完全なフレームワークです。 Swagger は GitHub 上のオープンソースであり、OpenAPI で保守されています。 Swagger は、開発者がライフサイクル全体を通じて RESTful API の設計、構築、文書化、テストを支援します。 PHP 開発者の場合、Swagger PHP と Laravel の統合を使用して、API インターフェイス ドキュメントを作成および表示できます。

この記事では、PHP と Laravel を使用して Swagger を統合し、API インターフェイス ドキュメントを作成およびテストする方法を紹介します。

  1. Swagger PHP のインストール

まず、Swagger PHP パッケージをインストールする必要があります。 Composer を通じてインストールし、ターミナルを開いて Laravel プロジェクト ディレクトリに入り、次のコマンドを実行します:

composer require zircote/swagger-php

  1. Swagger UI のインストール

Swagger UI は、Swagger 仕様で定義された API ドキュメントを表示するために使用されるオープン ソースの対話型ページです。これには、Swagger、ReDoc、および Swagger-UI を利用して API ドキュメントをレンダリングするためのフロントエンド ライブラリが含まれています。 npm を介してインストールすることも、Swagger UI のソース コードを直接ダウンロードすることもできます。

ここでは、Composer を使用して次のコマンドをインストールして実行します:

composer require darkaonline/l5-swagger

  1. Swagger PHP の構成

インストールが完了したら、Swagger サービスプロバイダーを Laravel 構成ファイルに追加する必要があります。 config/app.php ファイルを開き、プロバイダー配列を見つけて、次の構成を追加します:

`
'providers' => [

...
DarkaonlineL5SwaggerL5SwaggerServiceProvider::class,

],

'aliases ' => [

...
'Swagger' => DarkaonlineL5SwaggerFacadesSwaggerL5::class,

]
`

構成が完了したら、次のコマンドを実行して、Swagger の構成ファイル、ビュー、ルーティング、その他のファイルを公開します。

##php 職人ベンダー:パブリッシュ --provider "L5SwaggerL5SwaggerServiceProvider"

    Swagger アノテーションの作成
ここで、Swagger アノテーションの作成を開始できます。 Swagger アノテーションは、コード コメントにいくつかの特定のステートメントを追加して、Swagger ツールにパラメーター、戻り値、リクエスト メソッド、ルーティング アドレス、および API のその他の情報を通知します。

ここでは、Laravel の基本的な API インターフェイスを例として取り上げます。コードに Swagger アノテーションを追加します。サンプル コードは次のとおりです:

`

/**

#@SWGGet(
  • path="/api/users/{id}",
  • summary="ユーザー情報を取得する",
  • tags={"ユーザー管理"},
  • @SWGParameter(
  • name="id",
  • in="path",
  • required =true,
  • type="integer",
  • description="ユーザー ID"
  • ),
  • @SWGResponse(
  • response=200,
  • description="操作は成功しました",
  • @SWGSchema(
  • type="オブジェクト",
  • @SWGProperty(
  • )
  • property="code",
  • type="integer",
  • format="int64",
  • description="リターン コード"
  • ),
  • @SWGProperty(
  • property="データ",
  • type="オブジェクト",
  • description="ユーザー情報の内容",
  • @SWGProperty(
  • property="id",
  • type="integer",
  • format="int64",
  • description="ユーザー ID"
  • ),
  • @SWGProperty(
  • property="name",
  • type="string",
  • description="ユーザー名"
  • ),
  • @SWGProperty(
  • property="年齢",
  • type="integer" ,
  • format="int32",
  • description="ユーザーの年齢"
  • )
  • )
  • )
  • ),
  • @SWGResponse(response=404, description="ユーザー情報が存在しません"),
  • @SWGResponse(response=500, description="サーバー内部エラー")
  • )
  • */

  • public function getUserInfo($id)
{

// 根据ID获取用户信息

}

`


コード コメントの上に @SWGGet アノテーションを使用しますインターフェイスのリクエスト メソッドとルーティング アドレスが追加され、概要、タグ、パラメータ、応答などの注釈が追加されて、インターフェイスに関する詳細を Swagger ツールに伝えます。

Swagger ドキュメントの生成
  1. Swagger アノテーションの作成が完了したら、Swagger API ドキュメントを生成できます。ターミナルを開き、Laravel プロジェクト ディレクトリに入り、次のコマンドを入力してドキュメントを生成します:

php Artisan l5-swagger:generate

実行後、Swagger API ドキュメントが自動的に生成されますこれはブラウザを通じて生成できます。 http://your_host/api/documentation にアクセスしてドキュメントを参照してください。このページには、リクエスト メソッド、パラメータ、戻り結果、その他の詳細を含むすべての API インターフェイスが表示されます。

  1. API インターフェイスのテスト

API ドキュメントの作成と表示が完了したら、API インターフェイスもテストする必要があります。 Swagger の API ドキュメントでは、「試してみる」ボタンをクリックして API インターフェイスをテストできます。ここでは、リクエスト パラメータを手動で入力し、[実行] ボタンをクリックしてリクエストを作成すると、Swagger が自動的にサーバーへのリクエストを開始し、応答結果を表示します。このようにして、Swagger ツールを通じて API インターフェイスをテストできます。

概要

Swagger PHP と Laravel の統合を使用すると、完璧な API インターフェイス ドキュメントを簡単に作成し、インターフェイスをテストできます。実際のアプリケーションでは、Swagger ツールを使用すると開発効率が大幅に向上し、エラーの発生を減らすことができます。開発者は、API インターフェイスの管理とメンテナンスを改善し、それによってアプリケーションの信頼性と安定性を向上させるために、できるだけ早く Swagger ツールを採用することをお勧めします。

以上がPHP と Laravel を統合して Swagger インターフェイスのドキュメントとテストを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。