Innanzitutto cos'è un'API RESTful
Per chiarire alcune cose API RESTful (ovvero un servizio) sono un mezzo per comunicare le tue applicazioni. Crea un servizio e poi molti clienti che possono farne richiesta.
Che cos'è un cliente? Queste sono molte cose come l'interfaccia utente web front-end, un motore di reporting, il sistema di fatturazione, la ricerca e così via.
Quindi nel tuo esempio creerai un servizio API RESTfull per il client front-end su cui effettuare richieste. Un servizio RESTful invierà i dati di solito come json. Il client quindi elabora ulteriormente l'elaborazione della risposta e la visualizza come appropriato.
Una cosa da notare qui è sì il servizio è senza stato ma il client non lo è. Il tuo cliente può avere sessioni e cookie. Dovrà passare tali informazioni nella richiesta al servizio per l'elaborazione utilizzando la risposta per aggiornare lo stato.
Quindi, ad esempio, un cliente potrebbe effettuare una chiamata a percorsi come:
/user/create //A POST request with all the information needed to create a user
/user/{:id}/profile //A GET request to find get the information needed for a
//user profile with whatever the id is.
Quindi un'API RESTful è un'architettura di alto livello per la comunicazione delle applicazioni.
Dove si trova MVC in questo?
Un passo indietro in un'applicazione è dove MVC (così come MVP, MVVM, ecc.) viene utilizzato per creare separazioni di interesse. Questi schemi aiutano a non ottenere parti e parti disparate ovunque e una maggiore logica nelle visualizzazioni, quindi html. Lo vedresti implementato all'interno del client front-end perché al servizio non interessa le viste solo i dati (la vista è la V in MVC).
Per decomprimere MVC:
(M) odel - è un contenitore più o meno per contenere i dati. Potrebbe essere un modello user
o un modello più grande come profile
che ha un user
, cart
, payment
, ecc. Ha una struttura e alcuni elementi noti e probabilmente alcuni metodi per la manipolazione dei dati.
(V) iew - è il modo di visualizzare le informazioni all'utente (browser con HTML). Questa potrebbe essere una pagina php che riprende il modello sopra riportato e lo analizza nelle varie sezioni di una pagina. Una cosa su cui è abbastanza d'accordo è che questo non dovrebbe contenere molta logica. Si tratta principalmente della presentazione dei dati raccolti.
(C) ontroller - orchestra l'applicazione. In base a dove una richiesta del browser colpisce, sa dove ottenere le informazioni per riempire il modello in questo caso una richiesta all'API del servizio RESTful. Il modello viene quindi inserito in una vista e quindi inviato nuovamente al browser degli utenti.
Sommario
La bellezza della creazione di un servizio RESTful è che può essere in qualsiasi cosa e quindi il client può trovarsi in qualsiasi cosa purché sia possibile effettuare chiamate su http / https. Il MVC viene utilizzato in un client che gestisce il modo in cui gli utenti interagiscono con tale API.
Implementazioni
Ora come per un'implementazione in PHP, controlla tutti i framework Laravel, codeignitor, symfony e yii tutti mi vengono in mente (ho usato 0%) e vediamo se sono adatti ai tuoi bisogni.
Si noti che è possibile far crescere il servizio a casa e quindi scegliere un framework per qualsiasi client di solito costruisco il mio servizio in PHP o Java (PHP ha slimeframework e Java JAX-RS) e poi scegliere l'hottness che voglio usare per quello giorno nel client (Angular, React, GO o più PHP, si spera non sia Java).