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中文网其他相关文章!