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文檔:
GET docs/api
GET docs/api.json
>的規範
v2文檔:
GET docs/v2
GET 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, ], ]); }
>
v1
v2
>自定義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');
https://www.php.cn/link/0fcbc3c3c0cf262c771001930af2406bbbc
以上是如何用爭奪記錄Laravel中的多個API的詳細內容。更多資訊請關注PHP中文網其他相關文章!