Swagger は、Laravel、Spring Boot、CodeIgniter、ExpressJS などの一般的な Web フレームワークとシームレスに統合する、広く使用されている API ドキュメントおよびテスト ツールです。この記事では、Swagger と CodeIgniter の統合に焦点を当てます。
composer require zircote/swagger-php doctrine/annotations
Swagger UI の swagger.json ファイルを生成するには、コントローラーを作成する必要があります。コントローラーに任意の名前を付けます。ここでは SwaggerDocGenerator.php とします。コントローラーでは、zircote/swagger-php の OpenApiGenerator を使用して、すべての @OA 構文を JSON に変換する必要があります。
<?php namespace App\Controllers; use OpenApi\Generator; class SwaggerDocGenerator extends BaseController { /** * Generate OpenAPI documentation for the API ... * @return string */ public function generate(): string { // Specify the path where your API controllers are located $openapi = Generator::scan([APPPATH . 'Controllers']); $swaggerContent = $openapi->toJson(); // Save the generated OpenAPI content to a file $filePath = FCPATH . 'swagger_ui/swagger.json'; file_put_contents($filePath, $swaggerContent); return $swaggerContent; } /** * Render the SwaggerUI ... * @return string */ public function index() { return view('swagger_docs/index'); } } ?>
Config/Routes.php でルートを作成すると、期待される sawgger.json ファイルを生成できます。
// Create API documentation ... $routes->get('api/v1/docs/generate', 'SwaggerDocGenerator::generate'); $routes->get('api/v1/docs/ui', 'SwaggerDocGenerator::index');
ここでは、最初の 2 つの方法を見ていきます。 3 番目の方法については、別の記事で説明します。
composer require zircote/swagger-php doctrine/annotations
この記事では、Swagger と CodeIgniter 4 の統合、swagger.json ファイルの生成、Swagger UI でのレンダリング、Postman へのインポートについて説明しました。また、カスタム ビュー内で Swagger UI をレンダリングする方法も示しました。ただし、swagger.json ファイルを手動で生成し、swagger-initializer.js ファイル内の URL を更新することは理想的ではありません。
次の記事では、カスタム CLI コマンドを使用してこのプロセスを自動化する方法を示し、この目的のためのオープンソース パッケージの開発を目指します。コメントセクションでお気軽にご提案やご質問を共有してください。
以上がSwagger UI を Codeigniter4 と統合するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。