ホームページ >バックエンド開発 >PHPチュートリアル >ScrambleでLaravelで複数のAPIを文書化する方法

ScrambleでLaravelで複数のAPIを文書化する方法

Robert Michael Kim
Robert Michael Kimオリジナル
2025-03-05 15:53:11917ブラウズ

How to document multiple APIs in Laravel with Scramble

Laravelアプリケーションは、多くの場合、複数のAPIを管理し、バージョン化、パブリックおよび内部アクセスの分離、またはさまざまなフロントエンド/バックエンドのニーズへのケータリングに役立ちます。 スクランブルは、これらの多様なAPIの文書化を簡素化します

Scrambleのデフォルトのセットアップは「デフォルト」APIをドキュメントし、

で始まるエンドポイントを網羅しています。 さらにAPIを追加するには、登録、構成、ドキュメントの露出が含まれます api/

例:複数のAPIバージョンのドキュメント

2つのAPIバージョンを持つアプリケーションを検討してください:

// routes/api.php
Route::prefix('v1')->group(function () {
    // v1 routes
});

Route::prefix('v2')->group(function () {
    // v2 routes
});
を文書化するには、スクランブル構成を調整します:

v1 の場合は、サービスプロバイダーの

メソッド:
// config/scramble.php
...
'api_path' => 'api/v1',
...
に明示的に登録します。

v2boot

のドキュメントルートを登録します
// app/Providers/AppServiceProvider.php
use Dedoc\Scramble\Facades\Scramble;

public function boot()
{
    Scramble::registerApi('v2', ['api_path' => 'api/v2']);
}

さて、両方のAPIが文書化されています:v2 routes/web.php

// routes/web.php
use Dedoc\Scramble\Facades\Scramble;

Scramble::registerUiRoute('docs/v2', api: 'v2');
Scramble::registerJsonSpecificationRoute('docs/v2/api.json', api: 'v2');

v1ドキュメント:

  • :v1ドキュメントのui

      :openapi 3.1.0 v1
    • の仕様 GET docs/api
    • GET docs/api.json
    • v2ドキュメント:
  • :v2ドキュメントのui

      :openapi 3.1.0 v2
    • の仕様 GET docs/v2
    • ドキュメントアクセスを制御するGET docs/v2/api.json
パブリックおよびプライベートAPIの場合、ミドルウェアを管理します。 デフォルトでは、ドキュメントは

ミドルウェアを介して非生産環境に限定されています。 を公開するには、デフォルトの構成からを削除します:

RestrictedDocsAccess

を非生産に制限する:

v1 RestrictedDocsAccessさて、

は生産で公開されていますが、
// config/scramble.php
...
'middleware' => [
    'web',
],
...
は非生産に制限されたままです。

v2v1ドキュメントルートのカスタマイズ

// app/Providers/AppServiceProvider.php
use Dedoc\Scramble\Http\Middleware\RestrictedDocsAccess;

public function boot()
{
    Scramble::registerApi('v2', [
        'api_path' => 'api/v2',
        'middleware' => [
            'web',
            RestrictedDocsAccess::class,
        ],
    ]);
}

デフォルトのルートをカスタマイズするには(v1v2)、デフォルトのルート登録を無効にします:

次に、手動で登録してください:

v1結論GET docs/apiGET docs/api.json

スクランブルは、単一のLaravelアプリケーション内で複数のAPIドキュメントを効率的に処理し、各APIのルート、ミドルウェア、および構成をよく制御します。 詳細:
// app/Providers/AppServiceProvider.php
public function register()
{
    Scramble::disableDefaultRoutes();
}
https://www.php.cn/link/0fcbc3c0cf262c771001930af2406bbc

以上がScrambleでLaravelで複数のAPIを文書化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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