>在Laravel 11的发布后,将应用程序骨架减小,以删除每个项目不需要的额外文件。该更改的一部分从应用程序源代码中删除了所有服务提供商,除AppServiceProvider
>更新的应用程序骨架的另一部分是删除默认安装中的API路由。假设您计划在应用程序中添加API或专门用Laravel编写API。在这种情况下,您可以通过工匠命令来设置
api
<!-- Syntax highlighted by torchlight.dev -->php artisan install:api
路由文件(并配置它),一个用于个人访问令牌的数据库迁移以及一个Sanctum配置文件。如果您不需要版本的API,那就是您需要做的所有事情。install:api
>
api.php
在单独的文件中对您的API进行version
RouteServiceProvider
在上面的示例中,通常为Laravel Sanctum提供A
<!-- Syntax highlighted by torchlight.dev -->$this->routes(function () { Route::middleware('api') ->prefix('api') ->group(base_path('routes/api.php')); Route::middleware('api') ->prefix('api/v1') ->group(base_path('routes/api_v1.php')); Route::middleware('api') ->prefix('api/v2') ->group(base_path('routes/api_v2.php')); Route::middleware('web') ->group(base_path('routes/web.php')); });
中
routes/api.php
>路由自举移出/user
>>
RouteServiceProvider
bootstrap/app.php,
使用适合您的任何文件名称和位置。
>
接下来,打开<!-- Syntax highlighted by torchlight.dev -->touch routes/api_v1.php touch routes/api_v2.php php artisan make:controller --api Api/V1/PostsController php artisan make:controller --api Api/V2/PostsController
上面的代码在中表示我们已经在
路由前缀中工作并使用>中间件组。routes/api.php
。
<!-- Syntax highlighted by torchlight.dev -->Route::prefix('v1')->group(base_path('routes/api_v1.php')); Route::prefix('v2')->group(base_path('routes/api_v2.php'));
>文件:api.php
>
api
api
>
>
>通过定义路由文件,运行api_v1.php
,我们可以看到版本的路由!
<!-- Syntax highlighted by torchlight.dev --><?php use App\Http\Controllers\Api\V1\PostsController; Route::apiResource('posts', PostsController::class);
api_v2.php
<!-- Syntax highlighted by torchlight.dev --><?php use App\Http\Controllers\Api\V2\PostsController; Route::apiResource('posts', PostsController::class);
route:list
查看如果您只输出
>
我看到的另一种方法是使用接受abootstrap/app.php
>的参数定义then:
> grient的其他API路由
Closure
<!-- Syntax highlighted by torchlight.dev -->php artisan install:api
中间软件组。确保将这些路线包括在内的中间件组!routes/api.php
>
以上是Laravel 11中的API版本控制的详细内容。更多信息请关注PHP中文网其他相关文章!