首页 > 后端开发 > php教程 > 如何用争夺记录Laravel中的多个API

如何用争夺记录Laravel中的多个API

Robert Michael Kim
发布: 2025-03-05 15:53:11
原创
917 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板