|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2009
Città: Santo Stefano di Camastra (ME)
Messaggi: 445
|
Domanda su servizi RESTful
Per un progetto universitario sto creando una web application in angularjs che comunica con un database mysql, il professore ha richiesto che la comunicazione deve avvenire tramite un servizio RESTful. Senza informarmi troppo sulla teoria dei servizi RESTful ho creato temporaneamente questa architettura: se per esempio voglio prendere tutti gli utenti presenti nella tabella "users" del database, ho creato un file php (l'ho chiamato getUsers.php) che si collega al database, fa una select su tutta la tabella "users" e torna tutte le row come oggetto json, dalla web application angular faccio un get (http) su questo file "getUsers.php" e mi arrivano gli oggetti json con i dati di tutti gli utenti (username, password ecc.). Oppure per esempio se voglio aggiungere un utente nella tabella "users" del db, ho creato un file php (che ho chiamato addUser.php) che si collega al database, fa una insert nella tabella "users" e come dati per l'utente mette quelli che arrivano nella variabile $_POST, di conseguenza dalla web application angular, quando voglio aggiungere un utente, faccio una chiamata post (http) al file "addUser.php" e gli passo i dati dell'utente che voglio caricare.
Quello che volevo chiedere è: questo tipo di "architettura" può definirsi un servizio RESTful o devo modificarla? Grazie.
__________________
My Pc: Intel Core i7 8700 - Gigabyte Nvidia GeForce GTX960 2 gb GDRR5 - SSD Adata m.2 SX6000 512 GB - HDD 500 GB sata 3 & 320 GB sata 2 7200 RPM - CoolerMaster GX-Lite 600 W - G.skill Aegis 16 GB DDR4 2400MHz - Gigabyte Z370P D3 Ultima modifica di LowSlow : 23-12-2017 alle 12:06. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Premetto che ho realizzato REST solo in Java, quindi non so quanto sia agevole implementare questo in php, però mi risulta che per definire l'interfaccia RESTful sia importante unificare la gestione di una risorsa in un solo file/percorso di base, dopodiché si dovrebbero utilizzare il più possibile coerentemente i metodi HTTP per accedere ai dati (GET), modificarli (PUT), crearli (POST) ed eliminarli (DELETE).
Nei miei casi identifico quasi sempre una risorsa con una tabella su database (mettiamo quindi la tua users). Eccezione comune è l'utilizzo di POST per sia creazione che aggiornamento, perché solitamente il server è in grado di capire se il dato è da inserire o solamente aggiornare. (Nei miei casi ho anche eccezioni per metodi di ricerca che sono POST di form che inviano come dati JSON con filtri... ma facendo un esercizio per mostrare di aver capito credo sia meglio aderire il più possibile alla teoria) Il mio schema basico è solitamente:
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:26.



















