MVC is pretty straightforward.
Martin Fowler, forse, non è d'accordo con questo :
Different people reading about MVC in different places take different ideas from it and describe these as 'MVC'.
Andare avanti ...
When we create a website, it all come together as 'client sends REST keyword request to server -> the server matches the requested URL to the controller action -> which then calls the model(s) for data gathering/processing, gets the result -> and returns the result back to the client as a HTML page (view)'.
OK, questo è un po 'un groviglio
MVC, qualunque esso sia, è una raccolta di idee per l'implementazione delle interfacce utente.
REST è una raccolta di vincoli architettonici per la creazione di applicazioni su larga scala.
Il web, che è quello di cui stai parlando, è una gigantesca applicazione per la gestione dei documenti costruita utilizzando la maggior parte degli stessi vincoli.
Le somiglianze che stai vedendo tra i due sono (prendi la tua scelta) erroneamente attribuite o superficiali.
RESTafarians avere una visione comune di HATEOAS , "ipertesto come motore dello stato dell'applicazione", e che dovrebbe inviare allarmi attraverso la testa - perché una vista può essere un motore di stato ? Se mettiamo in discussione la premessa e cerchiamo ulteriori prove, potremmo notare due cose strane.
Innanzitutto, possiamo togliere completamente il server HTTP dall'equazione caricando l'HTML dal disco. Il browser è perfettamente soddisfatto di questo, scusando alcune piccole variazioni nel comportamento che potrebbero derivare dal cambiamento nell'URL di base. Le viste generalmente non continuano a funzionare quando sono state completamente disconnesse dal modello e dal controller in quel modo.
In secondo luogo, se osserviamo attentamente un browser moderno, noteremo che ci sono più viste dell'HTML. Le viste multiple di una vista sembrano un'idea davvero strana, ma sicuramente c'è la presentazione principale, con una serie di markup di testo che rispondono ai gesti dell'utente, e poi c'è questa cosa "Source View" che mostra il raw HTML e risponde anche a gesti dell'utente Sono le tartarughe fino in fondo!
La risposta all'enigma, ovviamente, è che l'HTML non è la vista. La raccolta di widget nel browser è la vista e sono in comunicazione con il Modello oggetto documento , che è stato inizializzato leggendo l'HTML.
In altre parole, l'HTML è una rappresentazione di stato, proprio come Roy T. Fielding promesso.
What if we are talking about a pure RESTful API web service...? Same as before, but there is no 'view'
Più correttamente, come prima: non c'è vista. Il JSON, proprio come l'HTML, è una rappresentazione di stato, adatta per attraversare i confini del processo.
Pensa "DTO" o "Messaggio" e le tue inferenze saranno molto meno probabilità di farti fuori strada.