Quali sono i vantaggi di un servizio web RESTful?

8

Compito accademico ... In primo luogo ci è stato detto di generare un insieme di file .html statici che mostrano i risultati delle elezioni in varie divisioni amministrative. Poi ci è stato detto di "modernizzarlo" usando i template di Django. Abbastanza corretto, posso vedere i vantaggi di tale approccio.

Ma poi ci è stato detto di "mordernizzare" ulteriormente rendendo l'app "RESTful". Per quanto posso dire questo significa che il server può solo esporre un'API che risponde alle richieste inviando i dati grezzi dei client nel formato JSON; il client, che è un sito HTML + CSS + JS statico, deve ricevere questo JSON e quindi creare dinamicamente la pagina Web sul lato browser con JavaScript.

Dato che purtroppo ho perso alcune conferenze, quando questo deve essere stato spiegato, qualcuno potrebbe spiegarmi quali sono i vantaggi di un simile approccio? Perché devo dire che posso solo vedere gli svantaggi:

  • Gli utenti con JavaScript disabilitato non potranno visualizzare la pagina.
  • Correggimi se sbaglio, ma AFAIK il contenuto di tale sito difficilmente potrà essere indicizzato da Google.
  • Sarà impossibile per gli utenti aggiungere i risultati delle elezioni in una determinata divisione. Invece, ogni volta che visitano il lato, dovranno fare clic per far sì che JavaScript carichi i risultati di quella particolare divisione. Oppure distribuisci un bot Selenium che faccia questo per loro.
  • Si interrompe / avanza i pulsanti del browser.
posta gaazkam 17.05.2017 - 01:05
fonte

3 risposte

13

Tecnicamente, un server web che serve pagine HTML è RESTful. Testo / Html è una valida rappresentazione valida, a condizione che il tipo di supporto sia impostato correttamente, secondo il interfaccia uniforme . Basta non abusare dei tuoi verbi (GET, POST, ecc.) E seguire HATEOAS (cioè utilizzare essenzialmente un URL ragionevole che sia univoco identifica una risorsa) e bam è riposante.

Penso che quello che ti sta chiedendo il tuo professore è che le tue pagine web usano un'API RESTful che spesso restituisce json (ma di nuovo può restituire qualsiasi tipo di media che il client accetta ).

Per quanto riguarda le tue obiezioni:

Users with disabled JavaScript will be unable to view the page.

Bene, non saranno in grado di ottenere alcun contenuto dinamico. La pagina può ancora contenere contenuto statico.

Correct me if I’m wrong, but AFAIK the contents of such a site will hardly be able to be indexed by Google.

Il contenuto statico, compresi i meta tag, può ancora essere sottoposto a scansione senza problemi.

It will be impossible for users to bookmark the election results in a particular division. Instead, each time they visit the side, they’ll have to click their way through to make JavaScript load the results from that particular division. Or deploy a Selenium bot that does this for them. It breaks back/forward browser buttons.

Nah. Se segui correttamente HATEOAS, l'URL deve fornire tutte le informazioni di stato richieste per il rendering della pagina e, se è nell'URL, è disponibile come bookmark.

    
risposta data 17.05.2017 - 02:00
fonte
0

È una sottile distinzione, ma ti stai spostando da una pagina web a un'applicazione web. In una pagina web, il server e il client sono strettamente accoppiati; l'unica opzione per visualizzare le informazioni è tramite la pagina Web.

Spostando i dati in un servizio web RESTful, la vista (quella che era la pagina Web) e il modello (i dati) sono completamente disaccoppiati e le opzioni per interagire con i dati sono aumentate.

    
risposta data 17.05.2017 - 03:32
fonte
0

Un'API REST, come qualsiasi API, rende disponibili le risorse in un'interfaccia leggibile dalla macchina che qualsiasi client può utilizzare.

Se usi quell'API per costruire il tuo sito web sei uno dei tanti possibili applicazioni che utilizzano lo stesso servizio.

I vantaggi dello stile REST sono: - utilizzare un protocollo esistente (qui HTTP) per scambiare i dati - si utilizzano tipi di media definiti per lo scambio di risorse.

Questo significa che altri sviluppatori possono utilizzare le conoscenze e gli strumenti esistenti per utilizzare la tua API.

    
risposta data 17.05.2017 - 11:12
fonte

Leggi altre domande sui tag