Dein erstes CRUD-API

30 Minuten ANFÄNGER

Baue deine erste REST-API mit Create-, Read-, Update- und Delete-Operationen. Lerne die Grundlagen der GEMVC-4-Schichten-Architektur Schritt für Schritt.

What You'll Learn

API-Service-Schicht

URL-Endpunkte anlegen und Anfragen validieren

Controller-Schicht

Geschäftslogik orchestrieren

Model- & Table-Schichten

Datenlogik und Datenbankoperationen

Video tutorial thumbnail
Watch Tutorial

Die 4-Schichten-Architektur verstehen

GEMVC nutzt ein klares 4-Schichten-Architekturmuster. Jede Schicht hat eine klare Aufgabe.
Jede Anfrage wird nach dem Eintreffen beim Webserver vom Bootstrap verarbeitet. Er führt folgende Schritte aus:

  1. 1. Alle Header bereinigen
  2. 2. Alle Anfragedaten bereinigen
  3. 3. Dateien, Cookies und Auth-Header extrahieren
  4. 4. Einheitliches Request-Objekt erzeugen
  5. 5. Anfrage an die API-Service-Schicht weiterleiten
  6. 6. Request-Objekt in die API-Service-Schicht injizieren

und der Ablauf geht von oben nach unten:

API-Schicht
Controller-Schicht
Model-Schicht
Table-Schicht

Folge den Anleitungen unten, um jede Schicht zu erstellen und eine vollständige CRUD-API zu bauen.

CLI-Befehle

Vollständiges CRUD für einen Service erstellen

Dieser Befehl erstellt alle 4 Schichten der CRUD-API: Api, Controller, Model und Table aus dem angegebenen ServiceName.

Terminal
php vendor/bin/gemvc create:crud ServiceName

Beispiel: php vendor/bin/gemvc create:crud Company

Dieser Befehl erstellt bei unserem Beispiel „Company“ folgende Dateien:

  • app/api/Company.php
  • app/controller/CompanyController.php
  • app/model/CompanyModel.php
  • app/table/CompanyTable.php

Table-Schicht-Klasse in die Datenbank migrieren

Dieser Befehl migriert die Table-Schicht-Klasse in die Datenbank.

Terminal
php vendor/bin/gemvc db:migrate TableClassName

Beispiel: php vendor/bin/gemvc db:migrate CompanyTable

Erstellte Tabelle in der Datenbank prüfen

Das Schema der erstellten Tabelle kannst du mit folgendem Befehl prüfen:
Hinweis: tableName ist der Zeichenkettenname, der in der Methode getTable() der Table-Schicht-Klasse definiert ist.

Terminal
php vendor/bin/gemvc db:describe tableName

Beispiel: php vendor/bin/gemvc db:describe companies

Beispiel: Ablauf einer Anfrage

So fließt eine Anfrage durch alle 4 Schichten:

1
API-Service
POST /api/User/create → Validiert Schema → Ruft Controller auf
2
Controller
Mappt POST-Daten auf Model → Ruft Model-Methode auf
3
Model
Validiert Geschäftsregeln → Transformiert Daten → Ruft Table auf
4
Table
Führt Datenbankabfrage aus → Gibt Daten zurück → Antwort fließt nach oben
Tip: Rufe localhost/api/index/document auf, um die automatisch erzeugte API-Dokumentation zu sehen. Klicke auf „Export to Postman“, um die Postman-Collection zum Testen deiner API zu erhalten.

🚀 Bereit für deine erste API?

Starte mit der API-Service-Schicht und arbeite dich über Controller, Model und Table vor. Folge jeder Anleitung, um eine vollständige CRUD-API zu bauen!