Heim > Backend-Entwicklung > PHP-Tutorial > API -Versioning in Laravel 11

API -Versioning in Laravel 11

Emily Anne Brown
Freigeben: 2025-03-06 02:23:12
Original
370 Leute haben es durchsucht

Mit der Veröffentlichung von Laravel 11 wurde das Anwendungsskelett abgeschoben, um zusätzliche Dateien zu entfernen, die nicht für jedes Projekt erforderlich sind. Ein Teil dieser Änderung hat alle Dienstanbieter aus dem Anwendungsquellcode mit Ausnahme des AppServiceProvider.

entfernt

Ein weiterer Teil des aktualisierten Anwendungsskeletts besteht darin, API -Routen in der Standardinstallation zu entfernen. Angenommen, Sie planen, Ihrer Anwendung eine API hinzuzufügen oder ausschließlich eine API mit Laravel zu schreiben. In diesem Fall können Sie die api Middleware -Gruppe und Routen mit einem Handwerkerbefehl einrichten:

<!-- Syntax highlighted by torchlight.dev -->php artisan install:api
Nach dem Login kopieren

Die install:api stellt die Streckendatei api.php, eine Datenbankmigration für persönliche Zugriffsstoken und eine Sanctum -Konfigurationsdatei ein. Wenn Sie Ihre API nicht verstellen müssen, ist das alles, was Sie tun müssen.

#versionierung Ihrer API in separaten Dateien

Ein allgemeiner Ansatz zum Schreiben von versionierten APIs in Laravel unterteilt Routen in verschiedene Dateien. Dies vereinfacht den Overhead der Argumentation über eine bestimmte API -Version und hält die Dinge aufgeräumt. In Laravel 10 oder früher fügt ein gemeinsamer Ansatz zusätzliche Routendateien für jede API -Version zum RouteServiceProvider:

hinzu
<!-- 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'));
});
Nach dem Login kopieren

Im obigen Beispiel bietet das routes/api.php normalerweise einen /user -Dendpunkt für Laravel Sanctum, und der Rest der API -Routen sind in der entsprechenden Version versteckt.

#versionierung Ihrer API in Laravel 11

mit Routenbootstrapping, die sich aus dem RouteServiceProvider in bootstrap/app.php, ausziehen, können Sie einige Möglichkeiten Ihrer API versionieren.

Generieren wir zuerst einige Dateien, um das Einrichten von Routing zu demonstrieren:

<!-- 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
Nach dem Login kopieren

Verwenden Sie die Konvention und den Speicherort der Dateinamen, die zu Ihnen passt.

Öffnen Sie als nächstes die Datei routes/api.php und fügen Sie die folgenden Zeilen am Ende der Datei hinzu:

<!-- 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'));
Nach dem Login kopieren

Der obige Code ist in api.php, bedeutet, dass wir bereits innerhalb des Präfixes api Routen und der api Middleware -Gruppe verwendet werden.

Fügen wir als nächstes die Beispielrouten für jede jeweilige API -Version hinzu, damit wir die Routenliste für jede Version visualisieren können.

Hier ist die api_v1.php Datei:

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

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

Route::apiResource('posts', PostsController::class);
Nach dem Login kopieren

und die api_v2.php Datei:

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

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

Route::apiResource('posts', PostsController::class);
Nach dem Login kopieren

Mit unseren Routendateien, die route:list ausgeführt werden, können wir versionierte Routen sehen!

Profi -Tipp: Sie können versionierte Routen mit dem Flag --path isolieren, um sich einfach auf eine bestimmte API -Version zu konzentrieren:

<!-- Syntax highlighted by torchlight.dev -->php artisan route:list --path=api/v1
php artisan route:list --path=api/v2
Nach dem Login kopieren

Schauen Sie sich an, wie ordentlich es aussieht, wenn Sie nur Routen für api/v2:

ausgeben

#definierende versionierte Routen in der App Bootstrap -Datei

Ein weiterer Ansatz, den ich gesehen habe bootstrap/app.php then: Ich füge lieber zusätzliche Routendateien direkt zu Closure hinzu, aber dies ist ein weiterer Ansatz, der funktionieren würde. Wenn Sie Routen in der Bootstrap -Datei definieren, werden diese Gruppen nicht so konfiguriert, dass sie die

Middleware -Gruppe verwenden. Stellen Sie sicher

Das obige ist der detaillierte Inhalt vonAPI -Versioning in Laravel 11. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage