oktatas:web:back-end_framework:laravel:laravel_rest_api:gyors_kezdes
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalonElőző változat | |||
oktatas:web:back-end_framework:laravel:laravel_rest_api:gyors_kezdes [2024/03/23 13:18] – [Laravel REST API kezdés] admin | oktatas:web:back-end_framework:laravel:laravel_rest_api:gyors_kezdes [2025/08/01 11:18] (aktuális) – eltávolítva admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[oktatas: | ||
- | |||
- | ====== Laravel REST API kezdés ====== | ||
- | |||
- | * **Szerző: | ||
- | * Copyright (c) 2023, Sallai András | ||
- | * Licenc: [[https:// | ||
- | * Web: https:// | ||
- | |||
- | ===== Projekt létrehozása ===== | ||
- | |||
- | Hozzuk létre a projektet: | ||
- | composer create-project laravel/ | ||
- | |||
- | ===== Projekt indítása ===== | ||
- | |||
- | Lépjünk be könyvtárba, | ||
- | cd app01 | ||
- | php artisan serve | ||
- | |||
- | ===== Adatbázis ===== | ||
- | |||
- | ==== MariaDB/ | ||
- | |||
- | Hozzuk létre az adatbázis: | ||
- | |||
- | <code mysql> | ||
- | create database emp | ||
- | character set utf8 | ||
- | collate utf8_hungarian_ci; | ||
- | |||
- | grant all privileges | ||
- | on emp.* | ||
- | to emp@localost | ||
- | identified by ' | ||
- | </ | ||
- | |||
- | |||
- | Szerkesszük a .env fájlt. Állítsuk be az adatbázishoz tartozó adatokat: | ||
- | |||
- | <code ini> | ||
- | DB_CONNECTION=mysql | ||
- | DB_HOST=127.0.0.1 | ||
- | DB_PORT=3306 | ||
- | DB_DATABASE=laravel | ||
- | DB_USERNAME=root | ||
- | DB_PASSWORD= | ||
- | </ | ||
- | |||
- | ==== SQLite ==== | ||
- | |||
- | Vegyük fel az sqlite beállítást, | ||
- | <code ini> | ||
- | DB_CONNECTION=sqlite | ||
- | |||
- | # DB_CONNECTION=mysql | ||
- | # DB_HOST=127.0.0.1 | ||
- | # DB_PORT=3306 | ||
- | # DB_DATABASE=laravel | ||
- | # DB_USERNAME=root | ||
- | # DB_PASSWORD= | ||
- | </ | ||
- | |||
- | Hozzunk létre a database könyvtárban egy database.sqltie üres állományt. | ||
- | |||
- | * database/ | ||
- | |||
- | |||
- | ===== Model, migráció és kontroller ===== | ||
- | |||
- | Model, migrációs fájl és a kontroller létrehozása: | ||
- | php artisan make:model Employee --migration --controller --api | ||
- | |||
- | A < | ||
- | * index() | ||
- | * store(Request $request) | ||
- | * show(Employee $employee) | ||
- | * < | ||
- | * destroy(Employee $employee) | ||
- | |||
- | Model, migrációs fájl és kontroller létrehozása rövid kapcsolókkal. | ||
- | php artisan make:model Employee -mc --api | ||
- | |||
- | ===== Migrációs fájl ===== | ||
- | |||
- | Függvénnyel megadható mezők rövid listája: | ||
- | |||
- | |||
- | * binary() | ||
- | * id() | ||
- | * char() | ||
- | * year() | ||
- | * double() | ||
- | * float() | ||
- | * integer() | ||
- | * date() | ||
- | * string() | ||
- | * text() | ||
- | * time() | ||
- | * timestamp() | ||
- | * tinyText() | ||
- | * boolean() | ||
- | * dateTime() | ||
- | * tinyInteger() | ||
- | |||
- | |||
- | |||
- | <code php> | ||
- | $table-> | ||
- | $table-> | ||
- | $table-> | ||
- | $table-> | ||
- | $table-> | ||
- | $table-> | ||
- | $table-> | ||
- | </ | ||
- | |||
- | |||
- | Az összes mezőtípus elérhető [[https:// | ||
- | |||
- | |||
- | ==== Migrációs fájl kiegészítése ==== | ||
- | |||
- | Tegyük fel, hogy egy ilyen fájl jön létre: | ||
- | * database/ | ||
- | |||
- | Szerkesszük a fájlt. | ||
- | |||
- | <code php> | ||
- | public function up() | ||
- | { | ||
- | Schema:: | ||
- | $table-> | ||
- | $table-> | ||
- | }); | ||
- | } | ||
- | </ | ||
- | |||
- | Az up() függvény: | ||
- | <code php> | ||
- | public function up() | ||
- | { | ||
- | Schema:: | ||
- | $table-> | ||
- | $table-> | ||
- | $table-> | ||
- | $table-> | ||
- | $table-> | ||
- | }); | ||
- | } | ||
- | </ | ||
- | |||
- | Készítsük el az adatbázist: | ||
- | php artisan migrate | ||
- | |||
- | ==== Kész táblák frissítése ==== | ||
- | |||
- | php artisan migrate: | ||
- | |||
- | A parancs törli a meglévő adatokat. | ||
- | |||
- | Ha szeretnénk megőrizni az adatokat, akkor külön migrációs fájlba írjuk le a változásokat és csak azt hajtsuk végre. | ||
- | |||
- | ==== Migráció visszavonása ==== | ||
- | |||
- | Utolsó migráció visszavonás | ||
- | php artisan migrate: | ||
- | |||
- | Összes migráció visszavonása: | ||
- | php artisan migrate: | ||
- | |||
- | ===== Fillable ===== | ||
- | |||
- | Biztonsági okokból alapértelmezetten minden mező kitöltése tiltott. | ||
- | Engedélyezzük a kitöltendő mezőket a modellben. Nélküle nem lehetséges | ||
- | műveletek: create, update. | ||
- | |||
- | Szerkesszük: | ||
- | * app/ | ||
- | |||
- | Szúrjuk be a következő sort: | ||
- | <code php> | ||
- | protected $fillable = [' | ||
- | </ | ||
- | |||
- | A teljes Employee.php: | ||
- | <code php> | ||
- | <?php | ||
- | |||
- | namespace App\Models; | ||
- | |||
- | use Illuminate\Database\Eloquent\Factories\HasFactory; | ||
- | use Illuminate\Database\Eloquent\Model; | ||
- | |||
- | class Employee extends Model | ||
- | { | ||
- | use HasFactory; | ||
- | protected $fillable = [ | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ]; | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | ===== A kontroller fejlesztése ===== | ||
- | |||
- | A következő fájlt kell szerkeszteni: | ||
- | * app/ | ||
- | |||
- | ==== Eredeti ==== | ||
- | |||
- | <code php> | ||
- | public function index() | ||
- | { | ||
- | |||
- | } | ||
- | |||
- | public function store(Request $request) | ||
- | { | ||
- | |||
- | } | ||
- | |||
- | public function show(Employee $employee) | ||
- | { | ||
- | |||
- | } | ||
- | |||
- | public function update(Request $request, Employee $employee) | ||
- | { | ||
- | |||
- | } | ||
- | |||
- | public function destroy(Employee $employee) | ||
- | { | ||
- | |||
- | } | ||
- | </ | ||
- | |||
- | |||
- | ==== Fejlesztés ==== | ||
- | |||
- | Vegyük használatba az Employee modellt. Az Employee model segítségével elvégezhetők a CRUD műveletek. | ||
- | |||
- | <note tip> | ||
- | Ügyeljünk arra, hogy az Employee modellben a $fillable tömb legyen kitöltve. | ||
- | </ | ||
- | |||
- | <code php> | ||
- | //... | ||
- | use App\Models\Employee; | ||
- | //... | ||
- | |||
- | public function index() | ||
- | { | ||
- | return Employee:: | ||
- | } | ||
- | |||
- | public function store(Request $request) | ||
- | { | ||
- | return Employee:: | ||
- | } | ||
- | |||
- | public function show($id) | ||
- | { | ||
- | return Employee:: | ||
- | } | ||
- | |||
- | public function update(Request $request, $id) | ||
- | { | ||
- | $employee = Employee:: | ||
- | $employee-> | ||
- | return $employee; | ||
- | } | ||
- | |||
- | public function destroy($id) | ||
- | { | ||
- | return Employee:: | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | ==== A response() függvény ==== | ||
- | Ajánlott a visszaadott értéket a **response()** függvénybe zárni: | ||
- | <code php> | ||
- | public function index() | ||
- | { | ||
- | return response(Employee:: | ||
- | } | ||
- | </ | ||
- | |||
- | Így visszaadhatunk **visszatérési kódot**, beállíthatjuk a visszatérés típusát. | ||
- | <code php> | ||
- | public function index() | ||
- | { | ||
- | return response(Employee:: | ||
- | -> | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | Használhatjuk a setStatusCode() függvényt is: | ||
- | <code php> | ||
- | public function index() | ||
- | { | ||
- | $employees = Employee:: | ||
- | return response()-> | ||
- | ' | ||
- | ' | ||
- | ])-> | ||
- | } | ||
- | </ | ||
- | |||
- | Külön változó: | ||
- | |||
- | <code php> | ||
- | public function index() | ||
- | { | ||
- | $employees = Employee:: | ||
- | $response = [ | ||
- | ' | ||
- | ' | ||
- | ]; | ||
- | return response() | ||
- | -> | ||
- | -> | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | Link: | ||
- | * https:// | ||
- | |||
- | ===== JSON ===== | ||
- | |||
- | <code php> | ||
- | public function index() | ||
- | { | ||
- | $employees = Employee:: | ||
- | return response()-> | ||
- | } | ||
- | </ | ||
- | |||
- | <code php> | ||
- | public function index() | ||
- | { | ||
- | $employees = Employee:: | ||
- | return response()-> | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | <code php> | ||
- | public function index() | ||
- | { | ||
- | $employees = Employee:: | ||
- | return response()-> | ||
- | ' | ||
- | ' | ||
- | ], 200); | ||
- | } | ||
- | </ | ||
- | |||
- | ===== Router ===== | ||
- | |||
- | <code php> | ||
- | use App\Http\Controllers\EmployeeController; | ||
- | |||
- | //... | ||
- | |||
- | Route:: | ||
- | Route:: | ||
- | Route:: | ||
- | Route:: | ||
- | Route:: | ||
- | |||
- | </ | ||
- | |||
- | ===== Validation ===== | ||
- | |||
- | <code php> | ||
- | public function store(Request $request) | ||
- | { | ||
- | $request-> | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ]); | ||
- | $employee = new Employee; | ||
- | $employee-> | ||
- | $employee-> | ||
- | $employee-> | ||
- | $employee-> | ||
- | return response($employee, | ||
- | } | ||
- | </ | ||
- | |||
- | Validációs lehetőségek [[https:// | ||
- | |||
- | ===== Cors ===== | ||
- | |||
- | A Cors következő helyen állítható: | ||
- | * config/ | ||
- | |||
- | Alapértelmezetten minden engedélyezve van. | ||
- | |||
- | ===== Admin felhasználó ===== | ||
- | ==== Seeder használata ==== | ||
- | |||
- | <code cmd> | ||
- | php artisan make:seeder AdminSeeder | ||
- | </ | ||
- | |||
- | A database/ | ||
- | <code php> | ||
- | use App\Models\User; | ||
- | //... | ||
- | |||
- | public function run() | ||
- | { | ||
- | User:: | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ]); | ||
- | } | ||
- | //... | ||
- | </ | ||
- | |||
- | A Seeder futtatása: | ||
- | php artisan db:seed --class=AdminSeeder | ||
- | |||
- | |||
- | ==== is_admin mező esetén ==== | ||
- | |||
- | <code php> | ||
- | use App\Models\User; | ||
- | //... | ||
- | |||
- | public function run() | ||
- | { | ||
- | User:: | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ]); | ||
- | } | ||
- | //... | ||
- | </ | ||
- | ==== Tinker használata ==== | ||
- | |||
- | Indítsuk el a tinkert: | ||
- | < | ||
- | php artisan tinker | ||
- | </ | ||
- | |||
- | Másoljuk be: | ||
- | |||
- | <code php> | ||
- | User:: | ||
- | </ | ||
- | |||
- | |||
- | Felhasználó keresése: | ||
- | <code php> | ||
- | App\Models\User:: | ||
- | </ | ||
- | |||
- | Az összes lekérdezése: | ||
- | <code php> | ||
- | App\Models\User:: | ||
- | </ | ||
- | |||
- | Felhasználó törlése: | ||
- | <code php> | ||
- | App\Models\User:: | ||
- | </ | ||
- | |||
- | ===== Függelék ===== | ||
- | ==== Segítség ==== | ||
- | |||
- | A kontrollerben információk kiíratása: | ||
- | |||
- | <code php> | ||
- | echo "< | ||
- | print_r($request-> | ||
- | </ | ||
- | |||
- | |||
- | < | ||
- | dd($request); | ||
- | </ | ||
oktatas/web/back-end_framework/laravel/laravel_rest_api/gyors_kezdes.1711196313.txt.gz · Utolsó módosítás: 2024/03/23 13:18 szerkesztette: admin