Diese Anleitung bietet eine schrittweise Erklärung zur Einrichtung und Nutzung der REST-API - zum Aufrufen und Bearbeiten von Produkten - in einer Docker-Umgebung. Sie ist für Anwender konzipiert, die die Anwendung zum ersten Mal aufsetzen.
Bevor Sie beginnen, stellen Sie sicher, dass folgende Software auf Ihrem System installiert ist:
- Docker: Installieren von Docker
- Docker Compose (wird normalerweise mit Docker Desktop auf Windows und Mac installiert):
- Windows und Mac: Im Rahmen von Docker Desktop enthalten.
- Linux: Installieren von Docker Compose
-
Klonen Sie das Repository: Öffnen Sie ein Terminal oder eine Eingabeaufforderung und führen Sie folgenden Befehl aus:
git clone https://github.com/Davicito81/task_dev-rest-api.git cd task_dev-rest-api
Falls Git nicht installiert ist, können Sie das Projekt auch als ZIP-Datei direkt von GitHub herunterladen:
Besuchen Sie https://github.com/Davicito81/task_dev-rest-api Klicken Sie auf Code und dann auf Download ZIP Entpacken Sie die ZIP-Datei und navigieren Sie in das Projektverzeichnis.
Nach dem das Projekt heruntergeladen wurde, müssen wichtige Abhänigkeiten im Framework Laravel nachinstalliert werden. Dazu füren Sie folgenden Befehl aus.
composer install
Hinweis für die lokale Verwendung der Rest-API
- Zum Ausführen ohne Docker-Umgebung, muss die PHP-8.2 vorhanden sein und
- die notwendige PHP-Extension: cli, mbstring, xml, curl, mysql, gd
Navigieren Sie im Terminal oder in der Eingabeaufforderung zum Projektverzeichnis und führen Sie folgenden Befehl aus:
docker-compose up -d
Dieser Befehl startet alle benötigten Dienste im Hintergrund.
Führen Sie die Migrationen aus, um die Datenbanktabellen zu initialisieren und die Standardprodukte in die Tabelle "products" zu migrieren:
docker-compose exec app php artisan migrate
docker-compose exec app php artisan db:seed --class=ProductsSeeder
Übersicht aller möglichen Routen
Verfügbare API-Routen
Method | URI | Name | Action |
---|---|---|---|
GET | /api/products | products.index | App\Http\Controllers\ProductController@index |
POST | /api/products | products.store | App\Http\Controllers\ProductController@store |
POST | /api/products/jsonList | App\Http\Controllers\ProductController@storeJsonList | |
GET | /api/products/{product} | products.show | App\Http\Controllers\ProductController@show |
PUT | /api/products/{product} | products.update | App\Http\Controllers\ProductController@update |
DELETE | /api/products/{product} | products.destroy | App\Http\Controllers\ProductController@destroy |
Diese Darstellung kann durch folgenden Docker Befehl abgerufen werden
docker-compose exec app php artisan route:list
Produkte ansehen
- URL: localhost:9000/api/products
- Methode: GET
Produkt abfragen
- URL: localhost:9000/api/products/{id}
- Methode: GET
Produkt hinzufügen
- URL: localhost:9000/api/products
- Methode: POST
- Daten:
{ "title": "[Titel des Produktes]", "description":"[Beschreibung des Produktes]", "category": "[Kethegorie des Produktes]", "state":"[true|false]" // das Attribute 'state' muss nicht zwingend angegeben werden. }
Produkte hinzufügen
- URL: localhost:9000/api/products/jsonList
- Methode: POST
- Daten:
[ { "title": "[Titel des Produktes]", "description": "[Beschreibung des Produktes]", "category": "[Kethegorie des Produktes]", "state": "[true|false]", // das Attribute 'state' muss nicht zwingend angegeben werden. }, { "title": "[Titel des Produktes]", "description": "[Beschreibung des Produktes]", "category": "[Kethegorie des Produktes]", "state": "[true|false]" // das Attribute 'state' muss nicht zwingend angegeben werden. }, ... ]
Produkt aktualisieren
- URL: localhost:9000/api/products/{id}
- Methode: PUT
- Daten:
{ "title": "[Titel des Produktes]", "description": "[Beschreibung des Produktes]", "category": "[Kethegorie des Produktes]", "state" : "[true|false]" // das Attribute 'state' muss nicht zwingend angegeben werden. }
Produkt aktualisieren
- URL: localhost:9000/api/products/{id}
- Methode: DELETE
Bei Problemen oder Fragen zur Einrichtung oder Nutzung der API können Sie gerne ein Issue im GitHub-Repository erstellen oder den technischen Support kontaktieren.