Students api
a
Students adatbázishoz tartozó Laravel api elkészítése
Kezdés:
laravel
new studens
A
következő lépésben a starter kit-ek közül a none-t válasszuk, majd a Pest-et
Az
adatbázis választásnál a mysql-t válasszuk
Modell
php
artisan make:model Students
A
létrejött Students.php file-t az app/Models mappában találjuk, a fájlra
navigálás után a következő kódot illesszük be:
<?php
namespace App\Models;
use
Illuminate\Database\Eloquent\Model;
class Students extends Model
{
// itt tudjuk
beállítani az adatbázisban lévő
//táblát,
amivel szeretnénk dolgozni
protected $table = 'students';
//(opcionális) beállíthatjuk az
elsődleges kulcsot is
protected $primaryKey = 'id';
//ha a $timestamps-ot false-ra
állítjuk akkor az adatbázis
// created_at, updated_at mezőit
letiltja
public $timestamps = false;
//a $fillable-ben megadhatjuk az
kiválaszott táblában lévő mezőket a amelyekkel szeretnénk dolgozni
protected $fillable = ['name', 'email', 'age'];
}
Controller
php
artisan make:controller StudentsController –api
Ez
a kontroller a diákok a adatainak kezelésére szolgál, A kontroller CRUD
műveleteket hajt végre metódusok segítségével.
a
létrejött StudentsController.php filet az app/http/Controllers mappában
találjuk, a fájlra navigálás után a következő kódot illesszük be:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Students;
class StudentController extends Controller
{
public function index()
{
return Students::all();
}
public function store(Request $request)
{
try {
$menet = Students::create($request->only(['name', 'email', 'age']));
return response()->json($menet, 201);
} catch (\Exception $e) {
return response()->json(['error' => $e->getMessage()], 500);
}
}
public function show($azon)
{
return Students::findOrFail($azon);
}
public function update(Request $request, $azon)
{
$menetrend = Students::findOrFail($azon);
$menetrend->update($request->only(['name', 'email', 'age']));
return response()->json($menetrend);
}
public function destroy($azon)
{
Students::destroy($azon);
return response()->json(['message' => 'Törölve']);
}
}
Routes
php
artisan install:api
amint
létrejött az api.php file a routes mappában a következó kódot illesszük be
<?php
use Illuminate\Http\Request;
use
Illuminate\Support\Facades\Route;
use App\Http\Controllers\MenetrendController;
use App\Http\Controllers\StudentController;
Route::apiResource('student', StudentController::class);
Összegző
ha
minden jól megy akkor az következő paranccsal elindíthatjuk a projektet
php
artisan serve
ha
tesztelni szeretnénk az api működését akkor valamilyen api tesztelő
alkalmazást/extension-t használhatunk (Postman, EchoApi)
ahol
a new http Request hombra kattintva
elérhetővé
válik a controll panel az „Enter URL or paste text” mezőbe illesszük be a
megnyitott projekt URL-jét és a tezsteléshez még egy /api/student –et kell
írnunk
(pl.:
http://127.0.0.1:8000/api/students)
5
fajta tesztelési lehetőségünk van a Controllerben eddig definiáltak alapján
(GET,GET{id},POST,PUT{id},DELETE{id})
adatbázis
CREATE TABLE `students`(
`id` int(11) NOT NULL,
`name` varchar(100) NOT NULL,
`email` varchar(150) NOT NULL,
`age` int(11) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_general_ci;