ホームページ > バックエンド開発 > PHPチュートリアル > Swagger UI を Codeigniter4 と統合する

Swagger UI を Codeigniter4 と統合する

DDD
リリース: 2024-12-21 14:13:10
オリジナル
149 人が閲覧しました

Integrate Swagger UI with Codeigniter4

Swagger は、Laravel、Spring Boot、CodeIgniter、ExpressJS などの一般的な Web フレームワークとシームレスに統合する、広く使用されている API ドキュメントおよびテスト ツールです。この記事では、Swagger と CodeIgniter の統合に焦点を当てます。

依存関係のインストール:

composer require zircote/swagger-php doctrine/annotations
ログイン後にコピー
ログイン後にコピー

SwaggerUI .zip または SwaggerUI GitHub リポジトリをダウンロードします。

  • ダウンロード リンク: SwaggerUI 最新リリース 要件に最適な Swagger UI リリースをダウンロードしてください。

コントローラーの作成:

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');
ログイン後にコピー

Swagger UI のレンダリング:

swagger.json ファイルを SwaggerUI にレンダリングするには、さまざまな方法があります。

  • swagger.json ファイルを POSTMAN にインポートします。
  • 独自のビューで SwaggerUI を使用して、SwaggerUI をレンダリングします。
  • バックエンド API で swagger.json ファイルをリクエストして、SwaggerUI をレンダリングする環境をフロントエンド アプリケーションにセットアップします。

ここでは、最初の 2 つの方法を見ていきます。 3 番目の方法については、別の記事で説明します。

swagger.json ファイルを POSTMAN にインポートします。

  • swagger.json をコピーします。
  • ポストマンを開きます。
  • 左上隅にある [インポート] ボタンをクリックします。
  • コピーした swagger.json を貼り付けます。

独自のビューで SwaggerUI を使用して SwaggerUI をレンダリングします。

  • ビュー フォルダー app/Views/swagger_docs/index.php に .php ファイルを作成して、SwaggerUI をレンダリングします。
  • ダウンロードした SwaggerUI .zip ファイルを public/swagger_ui/ フォルダーに解凍します。
composer require zircote/swagger-php doctrine/annotations
ログイン後にコピー
ログイン後にコピー

注記:

  • Codeigniter4 アプリケーションを実行するには、php sparkserve コマンドを必ず実行してください。
  • OpenAPI ドキュメントの構文を変更するたびに、http://localhost:8080/api/v1/docs/generate URL を実行して更新された swagger.json ファイルを生成する必要があります。
  • swagger.json ファイルの更新された URL を使用して swagger-initializer.js ファイルを必ず更新してください。

結論:

この記事では、Swagger と CodeIgniter 4 の統合、swagger.json ファイルの生成、Swagger UI でのレンダリング、Postman へのインポートについて説明しました。また、カスタム ビュー内で Swagger UI をレンダリングする方法も示しました。ただし、swagger.json ファイルを手動で生成し、swagger-initializer.js ファイル内の URL を更新することは理想的ではありません。

次の記事では、カスタム CLI コマンドを使用してこのプロセスを自動化する方法を示し、この目的のためのオープンソース パッケージの開発を目指します。コメントセクションでお気軽にご提案やご質問を共有してください。

以上がSwagger UI を Codeigniter4 と統合するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート