首頁 > 後端開發 > php教程 > 如何用爭奪記錄Laravel中的多個API

如何用爭奪記錄Laravel中的多個API

Robert Michael Kim
發布: 2025-03-05 15:53:11
原創
916 人瀏覽過

How to document multiple APIs in Laravel with Scramble

laravel應用程序通常管理多個API,有益於版本,分離公共和內部訪問或滿足不同的前端/後端需求。 爭奪簡化了記錄這些不同的API。

>

> cramble的默認設置文檔是“默認” API,涵蓋了以api/開頭的端點。 添加更多的API涉及註冊,配置和文檔曝光。

>

>>示例:記錄多個API版本

>

考慮一個具有兩個API版本的應用程序:

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

Route::prefix('v2')->group(function () {
    // v2 routes
});
登入後複製

要記錄v1,調整爭奪config:

// config/scramble.php
...
'api_path' => 'api/v1',
...
登入後複製

對於v2>,請在服務提供商的boot方法中明確註冊:

>
// app/Providers/AppServiceProvider.php
use Dedoc\Scramble\Facades\Scramble;

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

註冊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');
登入後複製

現在,兩個API都記錄在案:>

  • v1文檔:

    • :ui for V1文檔GET docs/api
    • :openapi 3.1.0 V1GET docs/api.json>的規範
  • v2文檔:

    • :ui for V2文檔GET docs/v2
    • :openapi 3.1.0 V2GET docs/v2/api.json的規範

控製文檔訪問

對於公共和私人API,管理中間件。 默認情況下,文檔僅限於非生產環境。

公開RestrictedDocsAccess,請從默認配置中刪除

v1限制RestrictedDocsAccess

非生產:
// config/scramble.php
...
'middleware' => [
    'web',
],
...
登入後複製

v2現在,

在生產中可以公開訪問,而
// 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文檔路由

自定義默認路由(

),禁用默認路由註冊:v1 GET docs/api 然後,手動註冊它們:GET docs/api.json

// app/Providers/AppServiceProvider.php
public function register()
{
    Scramble::disableDefaultRoutes();
}
登入後複製

結論

// routes/web.php
Scramble::registerUiRoute('docs/v1', api: 'default');
Scramble::registerJsonSpecificationRoute('docs/v1/api.json', api: 'default');
登入後複製
在單個Laravel應用程序中,有效地處理多個API文檔,為每個API提供對路線,中間件和配置的顆粒狀控制。 在以下網址了解更多信息:

https://www.php.cn/link/0fcbc3c3c0cf262c771001930af2406bbbc

以上是如何用爭奪記錄Laravel中的多個API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板