Successfully reported this slideshow.
Your SlideShare is downloading. ×

Laravel 7 REST API

Laravel 7 REST API

Download to read offline

Introduzione all'implementazione di REST API utilizzando il Framework PHP Laravel, un esempio CRUD di implementazione del servizio.

Introduzione all'implementazione di REST API utilizzando il Framework PHP Laravel, un esempio CRUD di implementazione del servizio.

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Laravel 7 REST API

  1. 1. Laravel 7 Rest API
  2. 2. Corso Laravel di B. Ferrari2 Rest API REST significa Representational state transfer è un’architettura software che definisce le modalità in cui vengono creati servizi web. I servizi RESTful permettono a l’interoperabilità tra computer attraverso internet Questi servizi permetto di accedere ed elaborare risorse web, queste risorse sono identificate da una URL
  3. 3. Corso Laravel di B. Ferrari3 1 - Esempio REST API Students La rest API students è una CRUD API con i seguenti endpoints 1- GET /api/students restituisce tutti gli studenti. Questo endpoint accetta solo richieste GET 2- POST /api/students crea un nuovo studente. Questo endpoint accetta solo richieste POST 3- PUT /api/students/{id} aggiorna uno i dati di uno studente. Questo endpoint accetta solo richieste PUT 4- DELETE /api/students/{id} elimina uno studente. Questo endpoint accetta solo richieste DELETE
  4. 4. Corso Laravel di B. Ferrari4 2- Esempio REST API Students Requisiti Composer, Laravel 7, Postman e XAMPP I passaggi per la creazione della Rest API students sono i seguenti: 1- Avvio Servizi avvio Apache e MySQL da XAMPP Control Panel 2- Creazione Database creo database students usando phpmyadmin (accessibile all’indirizzo http://localhost/phpmyadmin) 3- Creazione progetto Laravel nella carella di root (c:/xampp/htdocs) creo il progetto students con il comando laravel new students 4- Creazione Model 4.1 Mi sposto nella cartella students comando cd students 4.2 Eseguo il comando php artisan make:model Student -m, che crea il model Strudent e migrazione
  5. 5. Corso Laravel di B. Ferrari5 3- Esempio REST API Students 5 – Configurazione Model in app/Student.php andiamo a configurare il model come segue. namespace App; use IlluminateDatabaseEloquentModel; class Student extends Model { protected $table = 'students'; protected $fillable = ['name', 'course']; }
  6. 6. Corso Laravel di B. Ferrari6 4- Esempio REST API Students 6 – Configurazione Migrazone nella cartella database/migrations troviamo la migrazione creata nel punto 4 . Apriamo la classe di migrazione e andiamo a implementare il metodo up come segue: ... public function up() { Schema::create('students', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('course'); $table->timestamps(); }); } …
  7. 7. Corso Laravel di B. Ferrari7 5- Esempio REST API Students 7 – Configurazione DB apriamo il file .env e andiamo a configurare il file come segue DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=<your-database-name> (students) DB_USERNAME=<your-database-username> (root) DB_PASSWORD=<your-database-password> 8- Migrazione eseguiamo la prima migrazione con il comando php artisan migrate questo andrà a creare la tabella come definito
  8. 8. Corso Laravel di B. Ferrari8 6- Esempio REST API Students 9 – Creazione Controller eseguiamo il comando php artisan make:controller StudentController che crea un controller vuoto in app/Http/Controllers/StudentController.php. Inseriamo i metodi CRUD come segue: class StudentController extends Controller { public function getAll() { // logic to get all students goes here } public function create(Request $request) { // logic to create a student record goes here } public function get($id) { // logic to get a student record goes here } public function update(Request $request, $id) { // logic to update a student record goes here } public function delete ($id) { // logic to delete a student record goes here } }
  9. 9. Corso Laravel di B. Ferrari9 7- Esempio REST API Students 10 Creazione Routes apriamo il file routes/api.php e inseriamo i punti di accesso della nostra api, aggiungendo il codice seguente: ... Route::get('student', 'StudentController@getAll'); Route::get('student/{id}', 'StudentController@get'); Route::post('student', 'StudentController@create'); Route::put('student/{id}', 'StudentController@update'); Route::delete('student/{id}','StudentController@delete'); … Nota: api.php tutte le route hanno prefisso /api per default
  10. 10. Corso Laravel di B. Ferrari10 8- Esempio REST API Students 11 Implementazione action: Implementiamo come segue la action create, il codice riceve in una POST i parametri name e post in formato x-www-form-url-encoded e crea un’instanza del classe student e tramite il suo metodo save viene memorizzato a database <?php namespace AppHttpControllers; use IlluminateHttpRequest; use AppStudent; class StudentController extends Controller { ... public function create(Request $request) { $student = new Student; $student->name = $request->name; $student->course = $request->course; $student->save(); return response()->json([ "message" => "student record created" ], 201); } ... }
  11. 11. Corso Laravel di B. Ferrari11 9- Esempio REST API Students Possiamo verificare simulando una chiamata tramite Postman. Premiamo il pulsante NEW per creare una nuova chiamata di tipo POST e impostiamo com url http://localhost/students/public/api/student e andiamo a impostare i campi name e course da inserire in formato x- www-form-url-encoded
  12. 12. Corso Laravel di B. Ferrari12 10- Esempio REST API Students
  13. 13. Corso Laravel di B. Ferrari13 11- Esempio REST API Students Procediamo, in maniera analoga, con l’implementazione e test dei restanti metodi del controller public function getAll() { $students = Student::get()->toJson(); return response($students, 200); } public function get($id) { if (Student::where('id', $id)->exists()) { $student = Student::where('id', $id)->get()->toJson(); return response($student, 200); } else { return response()->json([ "message" => "Student not found" ], 404); } }
  14. 14. Corso Laravel di B. Ferrari14 12- Esempio REST API Students public function update(Request $request, $id) { if (Student::where('id', $id)->exists()) { $student = Student::find($id); $student->name = is_null($request->name) ? $student->name : $request->name; $student->course = is_null($request->course) ? $student->course : $request->course; $student->save(); return response()->json([ "message" => "records updated successfully" ], 200); } else { return response()->json([ "message" => "Student not found" ], 404); } }
  15. 15. Corso Laravel di B. Ferrari15 13- Esempio REST API Students public function delete ($id) { if(Student::where('id', $id)->exists()) { $student = Student::find($id); $student->delete(); return response()->json([ "message" => "records deleted" ], 202); } else { return response()->json([ "message" => "Student not found" ], 404); } }

×