Schritt 1: Laravel Installation
composer create-project --prefer-dist laravel/laravel example-api
Dadurch wird ein neues Laravel-Projekt mit dem Namen example-api im aktuellen Verzeichnis erstellt.
Schritt 2: Datenbankkonfiguration
Navigiere in das Verzeichnis deines neuen Laravel-Projekts:
cd example-api
Öffne die Datei .env und konfiguriere deine Datenbankverbindung, indem du die entsprechenden Felder wie DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME und DB_PASSWORD anpasst.
Schritt 3: Erstellung einer Migration
php artisan make:migration create_products_table
Dieser Befehl erstellt eine neue Migrationsdatei im Verzeichnis database/migrations.
Öffne die erstellte Migrationsdatei und definiere die Tabellenstruktur für deine Produkte-Tabelle, einschließlich aller benötigten Felder wie Name, Beschreibung, Preis usw.
Schritt 4: Ausführen der Migration
Führe die Migration aus, um die Produkte-Tabelle in deiner Datenbank zu erstellen:
php artisan migrate
Dadurch wird deine Datenbank entsprechend der definierten Migration aktualisiert.
Schritt 5: Erstellung des Models
Erstelle ein Model für dein Produkt:
php artisan make:model Product
Schritt 6: Erstellung der Routen
Schritt 7: Erstellung des Controllers
Erstelle einen Controller, der die Logik für die verschiedenen API-Endpunkte enthält:
php artisan make:controller ProductController
Dieser Befehl erstellt einen neuen Controller im Verzeichnis app/Http/Controllers.
Schritt 8: Implementierung der Controller-Methoden
Implementiere die Logik für die verschiedenen Controller-Methoden wie index, store, show, update und destroy. Diese Methoden sind für die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) der Produkte zuständi
<?php
namespace App\Http\Controllers;
use App\Models\Product;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class ProductController extends Controller
{
/**
* Alle Produkte abrufen.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$products = Product::all();
return response()->json($products, 200);
}
/**
* Ein neues Produkt erstellen.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'name' => 'required|string',
'description' => 'required|string',
'price' => 'required|numeric',
]);
$product = Product::create($request->all());
return response()->json($product, 201);
}
/**
* Ein bestimmtes Produkt anzeigen.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$product = Product::findOrFail($id);
return response()->json($product, 200);
}
/**
* Ein Produkt aktualisieren.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required|string',
'description' => 'required|string',
'price' => 'required|numeric',
]);
$product = Product::findOrFail($id);
$product->update($request->all());
return response()->json($product, 200);
}
/**
* Ein Produkt löschen.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$product = Product::findOrFail($id);
$product->delete();
return response()->json(null, 204);
}
}
In diesem Code werden die CRUD-Operationen für die Produktressourcen implementiert:
index: Rückgabe aller Produkte.
store: Erstellung eines neuen Produkts.
show: Anzeige eines bestimmten Produkts anhand seiner ID.
update: Aktualisierung eines vorhandenen Produkts.
destroy: Löschen eines vorhandenen Produkts.
Info
Diese Methoden verwenden die Eloquent-Methoden von Laravel, um mit der Datenbank zu interagieren, und geben JSON-Antworten entsprechend den HTTP-Statuscodes zurück. Außerdem werden die Eingaben mit Laravel-Validierungsregeln überprüft, um sicherzustellen, dass die Daten korrekt sind.