SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Laravel 7 Rest API
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
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
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
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'];
}
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();
});
}
…
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
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
}
}
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
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);
}
...
}
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
Corso Laravel di B. Ferrari12
10- Esempio REST API Students
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);
}
}
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);
}
}
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);
}
}

Contenu connexe

Tendances

JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
jampslide
 
Gianfrasoft Corso Di Php Parte 1
Gianfrasoft   Corso Di Php   Parte 1Gianfrasoft   Corso Di Php   Parte 1
Gianfrasoft Corso Di Php Parte 1
Gianfranco Fedele
 

Tendances (20)

Xamarin.android
Xamarin.androidXamarin.android
Xamarin.android
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)
 
Drupal 8 - dal download del core alla pubblicazione in produzione
Drupal 8 - dal download del core alla pubblicazione in produzioneDrupal 8 - dal download del core alla pubblicazione in produzione
Drupal 8 - dal download del core alla pubblicazione in produzione
 
Drupal Day 2015 - Drupal 8 dal download del core alla pubblicazione in prod...
Drupal Day 2015 -  Drupal 8  dal download del core alla pubblicazione in prod...Drupal Day 2015 -  Drupal 8  dal download del core alla pubblicazione in prod...
Drupal Day 2015 - Drupal 8 dal download del core alla pubblicazione in prod...
 
High Performance Web Apps con PHP e Symfony 2
High Performance Web Apps con PHP  e Symfony 2High Performance Web Apps con PHP  e Symfony 2
High Performance Web Apps con PHP e Symfony 2
 
Corso Java 3 - WEB
Corso Java 3 - WEBCorso Java 3 - WEB
Corso Java 3 - WEB
 
IBM WCM e SEO
IBM WCM e SEOIBM WCM e SEO
IBM WCM e SEO
 
WebSphere Portal e WCM #dd12
WebSphere Portal e WCM #dd12WebSphere Portal e WCM #dd12
WebSphere Portal e WCM #dd12
 
Many Designs Elements
Many Designs ElementsMany Designs Elements
Many Designs Elements
 
Lezione 9: Web Service in Java
Lezione 9: Web Service in JavaLezione 9: Web Service in Java
Lezione 9: Web Service in Java
 
Lezione JSP database Crud
Lezione JSP database CrudLezione JSP database Crud
Lezione JSP database Crud
 
Logging
LoggingLogging
Logging
 
Drupal come framework di sviluppo
Drupal come framework di sviluppoDrupal come framework di sviluppo
Drupal come framework di sviluppo
 
#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 
Xaml su Xamarin
Xaml su XamarinXaml su Xamarin
Xaml su Xamarin
 
Novità di Asp.Net 4.0
Novità di Asp.Net 4.0Novità di Asp.Net 4.0
Novità di Asp.Net 4.0
 
REST con Jersey
REST con JerseyREST con Jersey
REST con Jersey
 
Gianfrasoft Corso Di Php Parte 1
Gianfrasoft   Corso Di Php   Parte 1Gianfrasoft   Corso Di Php   Parte 1
Gianfrasoft Corso Di Php Parte 1
 
Corso di servlet jsp e pattern
Corso di servlet jsp e patternCorso di servlet jsp e pattern
Corso di servlet jsp e pattern
 

Similaire à Laravel 7 REST API

AngularJS: server communication
AngularJS: server communicationAngularJS: server communication
AngularJS: server communication
Vittorio Conte
 
Php mysql e cms
Php mysql e cmsPhp mysql e cms
Php mysql e cms
orestJump
 
02 Struts Actions3016
02 Struts Actions301602 Struts Actions3016
02 Struts Actions3016
DavideBos
 
02 Struts Actions3016
02 Struts Actions301602 Struts Actions3016
02 Struts Actions3016
DavideBos
 
JAMP DAY 2010 - ROMA (3)
JAMP DAY 2010 - ROMA (3)JAMP DAY 2010 - ROMA (3)
JAMP DAY 2010 - ROMA (3)
jampslide
 

Similaire à Laravel 7 REST API (20)

Come Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagineCome Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagine
 
AngularJS: server communication
AngularJS: server communicationAngularJS: server communication
AngularJS: server communication
 
Creazione di una REST API in Liferay
Creazione di una REST API in LiferayCreazione di una REST API in Liferay
Creazione di una REST API in Liferay
 
Php mysql e cms
Php mysql e cmsPhp mysql e cms
Php mysql e cms
 
Php mysql3
Php mysql3Php mysql3
Php mysql3
 
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
 
RESTful APIs (ITA) - /w WebMachine
RESTful APIs (ITA) - /w WebMachineRESTful APIs (ITA) - /w WebMachine
RESTful APIs (ITA) - /w WebMachine
 
02 Struts Actions3016
02 Struts Actions301602 Struts Actions3016
02 Struts Actions3016
 
02 Struts Actions3016
02 Struts Actions301602 Struts Actions3016
02 Struts Actions3016
 
02 Struts Actions
02  Struts  Actions02  Struts  Actions
02 Struts Actions
 
Html5 e PHP
Html5 e PHPHtml5 e PHP
Html5 e PHP
 
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazione
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Lezione Servlet Natalizi
Lezione Servlet NataliziLezione Servlet Natalizi
Lezione Servlet Natalizi
 
Corso di php01
Corso di php01Corso di php01
Corso di php01
 
JAMP DAY 2010 - ROMA (3)
JAMP DAY 2010 - ROMA (3)JAMP DAY 2010 - ROMA (3)
JAMP DAY 2010 - ROMA (3)
 
Lezione programmazione database con java Servlet - quarta parte
Lezione programmazione database con java Servlet - quarta parteLezione programmazione database con java Servlet - quarta parte
Lezione programmazione database con java Servlet - quarta parte
 
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case studyMantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
 
Autenticazione delle api con jwt e symfony (Italian)
Autenticazione delle api con jwt e symfony (Italian)Autenticazione delle api con jwt e symfony (Italian)
Autenticazione delle api con jwt e symfony (Italian)
 

Plus de Beniamino Ferrari (8)

Persistenza su Xamarin
Persistenza su XamarinPersistenza su Xamarin
Persistenza su Xamarin
 
Interfaccia di Xamarin
Interfaccia di XamarinInterfaccia di Xamarin
Interfaccia di Xamarin
 
Installazione di Xamarin
Installazione di XamarinInstallazione di Xamarin
Installazione di Xamarin
 
Introduzione a Xamarin
Introduzione a XamarinIntroduzione a Xamarin
Introduzione a Xamarin
 
Corso angular js material
Corso angular js materialCorso angular js material
Corso angular js material
 
Corso angular js componenti
Corso angular js componentiCorso angular js componenti
Corso angular js componenti
 
Corso angular js base
Corso angular js baseCorso angular js base
Corso angular js base
 
Corso linux base
Corso linux baseCorso linux base
Corso linux base
 

Laravel 7 REST API

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Corso Laravel di B. Ferrari12 10- Esempio REST API Students
  • 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. 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. 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); } }