Rumah >pembangunan bahagian belakang >tutorial php >Versi API di Laravel 11
Dengan pembebasan Laravel 11, rangka aplikasi telah tipis untuk mengeluarkan fail tambahan yang tidak diperlukan pada setiap projek. Sebahagian daripada perubahan itu mengeluarkan semua penyedia perkhidmatan dari kod sumber aplikasi kecuali AppServiceProvider
.
Satu lagi bahagian rangka aplikasi yang dikemas kini ialah mengeluarkan laluan API dalam pemasangan lalai. Katakan anda merancang untuk menambah API ke aplikasi anda atau secara eksklusif menulis API dengan Laravel. Dalam kes itu, anda boleh menyediakan kumpulan dan laluan middleware api
dengan perintah artisan:
<!-- Syntax highlighted by torchlight.dev -->php artisan install:api
install:api
menetapkan fail laluan api.php
(dan mengkonfigurasinya), penghijrahan pangkalan data untuk token akses peribadi, dan fail konfigurasi sanctum. Sekiranya anda tidak perlu versi API anda, itu sahaja yang perlu anda lakukan.
Pendekatan yang sama untuk menulis API versi di Laravel adalah memisahkan laluan ke dalam fail yang berbeza. Melakukannya memudahkan overhead penalaran tentang versi API tertentu dan menyimpan perkara -perkara yang kemas. Dalam Laravel 10 atau lebih awal, pendekatan yang sama menambah fail laluan tambahan untuk setiap versi API ke RouteServiceProvider
:
<!-- 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')); });
Dalam contoh di atas, routes/api.php
biasanya menawarkan titik akhir /user
untuk sanctum Laravel, dan selebihnya laluan API disimpan dalam versi yang sesuai.
dengan bootstrapping laluan bergerak keluar dari RouteServiceProvider
dan ke bootstrap/app.php,
Berikut adalah beberapa cara yang anda boleh versi API anda.
Pertama, mari kita menghasilkan beberapa fail untuk menunjukkan penubuhan penghalaan:
<!-- 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
Gunakan apa -apa konvensyen nama fail dan lokasi yang sesuai dengan anda.
Seterusnya, buka fail routes/api.php
dan tambahkan baris berikut ke bahagian bawah fail:
<!-- 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'));
Kod di atas berada dalam api.php
bermaksud bahawa kita sudah bekerja dalam awalan laluan api
dan menggunakan kumpulan middleware api
.
Seterusnya, mari tambahkan laluan contoh untuk setiap versi API masing -masing supaya kita dapat memvisualisasikan senarai laluan untuk setiap versi.
inilah fail api_v1.php
:
<!-- Syntax highlighted by torchlight.dev --><?php use App\Http\Controllers\Api\V1\PostsController; Route::apiResource('posts', PostsController::class);
dan fail api_v2.php
:
<!-- Syntax highlighted by torchlight.dev --><?php use App\Http\Controllers\Api\V2\PostsController; Route::apiResource('posts', PostsController::class);
dengan fail laluan kami ditakrifkan, berjalan route:list
, kita dapat melihat laluan versi!
tip pro: Anda boleh mengasingkan laluan versi yang menggunakan bendera --path
, menjadikannya mudah untuk memberi tumpuan kepada versi API tertentu:
<!-- Syntax highlighted by torchlight.dev -->php artisan route:list --path=api/v1 php artisan route:list --path=api/v2
lihat bagaimana kemasnya kelihatan jika anda hanya mengeluarkan laluan untuk api/v2
:
Pendekatan lain yang saya lihat ialah menentukan laluan API tambahan dalam fail bootstrap/app.php
menggunakan argumen then:
, yang menerima Closure
:
<!-- Syntax highlighted by torchlight.dev -->php artisan install:api
Saya lebih suka menambah fail laluan tambahan terus ke routes/api.php
, tetapi ini adalah satu lagi pendekatan yang akan berfungsi. Apabila menentukan laluan dalam fail bootstrap, kumpulan -kumpulan ini tidak dikonfigurasi untuk menggunakan kumpulan middleware api
. Pastikan untuk memasukkan kumpulan middleware api
dengan laluan ini!
Atas ialah kandungan terperinci Versi API di Laravel 11. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!