首頁 > 後端開發 > php教程 > Laravel 11中的API版本控制

Laravel 11中的API版本控制

Emily Anne Brown
發布: 2025-03-06 02:23:12
原創
371 人瀏覽過

>在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

>在Laravel中編寫版本的API的一種常見方法是將路由分為不同的文件。這樣做簡化了有關特定API版本的推理的開銷,並使事情整潔。在Laravel 10或更早的時間裡,一種常見的方法是將每個API版本的其他路由文件添加到

>:>

RouteServiceProvider在上面的示例中,通常為Laravel Sanctum提供A

端點,其餘的API路由將其塞入適當的版本中。
<!-- 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'));
});
登入後複製
#version your api在laravel 11

routes/api.php>路由自舉移出/user>>

>以下幾種方法可以版本您的API。

首先,讓我們生成一些文件以演示設置路由:>

RouteServiceProviderbootstrap/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

接下來,讓我們添加每個相應API版本的示例路由
<!-- 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>

> file:

>

>通過定義路由文件,運行api_v1.php,我們可以看到版本的路由!

<!-- Syntax highlighted by torchlight.dev --><?php

use App\Http\Controllers\Api\V1\PostsController;

Route::apiResource('posts', PostsController::class);
登入後複製

api_v2.php

> PRO提示:您可以使用
<!-- Syntax highlighted by torchlight.dev --><?php

use App\Http\Controllers\Api\V2\PostsController;

Route::apiResource('posts', PostsController::class);
登入後複製
標誌隔離版本的路由,從而易於專注於特定的API版本:>

route:list查看如果您只輸出

的路由路由:

>

#dedining版本的路由在應用程序Bootstrap文件

我看到的另一種方法是使用接受abootstrap/app.php>的參數定義then:> grient的其他API路由 Closure

>我更喜歡將其他路由文件直接添加到
<!-- Syntax highlighted by torchlight.dev -->php artisan install:api
登入後複製
登入後複製
>中,但這是另一種可以使用的方法。在Bootstrap文件中定義路由時,這些組未配置為使用

中間軟件組。確保將這些路線包括在內的中間件組! routes/api.php>

以上是Laravel 11中的API版本控制的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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