ホームページ >PHPフレームワーク >Swoole >Hyperf フレームワークを使用して API ドキュメントを生成する方法
Hyperf フレームワークを使用して API ドキュメントを生成する方法
はじめに:
インターネットの急速な発展に伴い、API (アプリケーション プログラミング インターフェイス) は不可欠なものになりました。さまざまなアプリケーションを接続して、データの共有と対話を実現できます。開発チームにとって、優れた API ドキュメントは、チームのコラボレーションを確実にするための重要なツールです。この記事では、Hyperf フレームワークを使用して明確で使いやすい API ドキュメントを生成する方法を紹介し、具体的なコード例を通じてそれを示します。
1. 準備作業
Hyperf フレームワークを使用して API ドキュメントを生成する前に、次の準備を行う必要があります:
2. API ドキュメントの生成
以下は、Hyperf フレームワークを使用して API ドキュメントを生成するための具体的な手順とコード例です:
Swaggervel のインストール
composer require overtrue/laravel-swagger
ドキュメント ジェネレーター クラスの作成
app/Doc フォルダーの下に DocGenerator.php ファイルを作成し、その中に次のコードを記述します:
<?php namespace AppDoc; use HyperfValidationContractValidatorFactoryInterface; use OvertrueLaravelSwaggerRequest; use OvertrueLaravelSwaggerSwagger as BaseSwagger; class DocGenerator { protected $validator; public function __construct(ValidatorFactoryInterface $validator) { $this->validator = $validator; } public function generate() { $swagger = new BaseSwagger([ 'swagger' => '2.0', 'info' => [ 'title' => config('app.name'), 'version' => config('app.version'), ], ]); $routes = app('router')->getRoutes(); foreach ($routes as $route) { $methods = $route->methods(); $path = $route->uri(); foreach ($methods as $method) { $request = new Request([ 'method' => $method, 'uri' => $route->uri(), ]); $docBlock = $route->getAction()['doc'] ?? null; // 从Route中获取注释 $parameters = []; $validator = $this->validator->make($request->all(), $docBlock ? $docBlock['rules'] : []); foreach ($validator->failed() as $field => $messages) { $parameters[] = [ 'name' => $field, 'in' => 'query', 'required' => true, 'description' => implode(', ', $messages), ]; } $responses = []; $responses[] = [ 'statusCode' => 200, 'description' => '请求成功', 'data' => [ 'type' => 'object', 'properties' => [ 'code' => [ 'type' => 'integer', ], 'message' => [ 'type' => 'string', ], 'data' => [ 'type' => 'object', 'nullable' => true, ], ], ], ]; $swagger->addPath($path, $method, [ 'parameters' => $parameters, 'responses' => $responses, ]); } } return $swagger->toYaml(); } }
アクセス ルーティングを構成する
次のルーティング構成を config/routes.php ファイルに追加します。
use AppDocDocGenerator; Router::get('/api/docs', function (DocGenerator $docGenerator) { return $docGenerator->generate(); });
API ドキュメントを生成します。
ターミナルで次のコマンドを実行します。 API ドキュメントを生成するには:
php bin/hyperf.php serve
以上がHyperf フレームワークを使用して API ドキュメントを生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。