Erstellung einer simplen Laravel Applikation, welche REST-API Schnittstellen anbietet. Es soll dabei vor allem auf das MVC Pattern* geachtet werden.
-
Einrichtung: Laravel 10.x installieren und in einem Docker-Environment aufsetzen, Laravel Sail ist ausreichend. Ein guter Anhaltspunkt stellt die offizielle Laravel Doku dar.
-
API erstellen: Über die REST API https://instantwebtools.net/fake-rest-api#read-airlines wollen wir Airlines anzeigen, erstellen und updaten. Erstelle dazu passende Routen in Laravel. Diese sollen in einem Controller die entsprechenden Endpoints der API abfragen. (Hilfreich dazu ist der Abschnitt Http Client in der Doku):
GET /api/airlines
soll alle Airlines ausgebenGET /api/airlines/:id
soll die Airline mit der :id ausgebenPOST /api/airline
sollte eine neue Airline erstellenPUT /api/airlines/:id
soll den Namen der Airline mit der :id updaten- Tipp: Hilfreich zum Testen der Routen ist ein Http-Client wie Postman oder Insomnia
-
API-Dokumentation: Die Schnittstellen können mittels Swagger unter einer Route, gängig ist z.B. </api/v1>, dokumentiert werden.
-
Frontend: Zeige die Airlines in einer View an (siehe laravel views). Dabei kann es sich sowohl um eine einfache HTML List als auch VueJs handeln. Das ist dir überlassen. Ein gutes Tutorial für laravel + vue wäre z.B. hier zu finden.
- Pagination: In einem anderen Endpunkt der API können wir uns Passagiere zu den Airlines holen, diese sind jedoch paginated.
Ziel hier ist es, die Passagiere auszulesen und bei page=1 die ersten 50, bei page=2 die zweiten 50 etc. auszugeben. Dies soll in der entsprechnenden Laravel-Route ergänzt werden:
Endpunkt: GET https://api.instantwebtools.net/v1/passenger?page=0&size=10
Docs: https://www.instantwebtools.net/fake-rest-api#read-passenger-paginated
- MVC: Ein gängiges Entwurfsmuster zur Strukturierung von Software stellt das Model-View-Controller Design Pattern dar. Es trennt die Daten- von der Präsentationsschicht. Laravel ist ein MVC-PHP-Framework.