Che cosa può fare l'API REST che un'API utilizzando le stringhe di query URL HTTP non può fare?

6

Sto imparando a conoscere REST e ho avuto la possibilità di creare un'API REST di base. Dopo averlo fatto, gran parte del materiale che ho letto è stato interiorizzato e ora ne ho una migliore comprensione.

Tuttavia, non vedo ancora alcuna differenza per quanto riguarda i vantaggi tangibili dell'utilizzo di REST rispetto al vecchio modo in cui stavo facendo le cose, che erano stringhe di query URL semplici. Sembra che entrambi facciano esattamente le stesse cose. Ma con REST, è più pulito e standardizzato.

Pensavo che REST avesse ulteriori vantaggi tecnici. Se lo fanno, cosa sono? Oppure REST è semplicemente questo: un modo concordato di implementare e API?

    
posta guptron 24.07.2013 - 16:39
fonte

3 risposte

9

Non ci sono ulteriori vantaggi tecnici. Molte persone pensano semplicemente che l'utilizzo di uno stile RESTful offra un'interfaccia più pulita. Se non altro, i consumatori possono solitamente trarre conclusioni su come funziona un'API RESTful (GET per recuperare dati, PUT e POST per creare o salvare dati, DELETE per eliminare, ecc.), Mentre con stringhe di query casuali devono leggere un po 'la documentazione più da vicino.

    
risposta data 24.07.2013 - 19:27
fonte
4

REST ha molti vantaggi tecnici e non si tratta solo di "stile". È un'architettura, un modo di pensare, che ha molti vantaggi rispetto a un'architettura in stile rpc. REST è anche MOLTO più di uno schema URI.

REST offre 5 "vincoli" che aiutano a guidare verso una buona API:

1. Client-server

Autoesplicativo e già la natura delle app Web.

2. Stateless

Statelessness significa che lo stato è mantenuto sul client. Questo rende ogni transazione richiesta / risposta indipendente. I vantaggi sono:

Le comunicazioni senza stato consentono ai client di recuperare da errori di rete. Client e server possono andare e venire senza lo stato di corruzione. I nuovi nodi di elaborazione possono essere collegati senza una gestione dello stato complessa.

3. Cacheable

Controllo della cache a più livelli (client, server, intermediario) - perché lo stato esiste in un'unica posizione. Per ovvi motivi, la memorizzazione nella cache di più livelli riduce la latenza, la larghezza di banda e il costo.

4. Sistema a strati

Limita la complessità a ogni livello. Migliora anche la sicurezza perché la sicurezza può essere implementata su più livelli.

5. Interfaccia uniforme

Le risorse sono identificate dagli URI. Questi URI servono come un'astrazione e non dovrebbero cambiare spesso. Le rappresentazioni sono rappresentazioni di una risorsa per il cliente in base a una negoziazione. I dati di controllo sono ciò che negozia le rappresentazioni e le azioni. Hypermedia protegge il server dall'essere bloccato in uno schema uri.

Tutti questi sono parte di REST. È molto più di uno schema URI.

    
risposta data 06.08.2014 - 20:10
fonte
3

REST non riguarda la funzionalità, ma lo stile. L'idea alla base non è che consente qualcosa di nuovo, ma rende l'API più facile da apprendere e capire, e rende anche gli URL più brevi e più leggibili.

L'altra cosa da tenere a mente è che REST non significa "nessun parametro di ricerca". L'idea è che nella maggior parte delle API, molte informazioni sono per natura gerarchiche e quindi per tali informazioni, perché non utilizzare la struttura gerarchica inerente a un URL? Rende esplicita la gerarchia e questo a sua volta rende spesso più un'API più flessibile. (Perché fa pensare allo sviluppatore in termini gerarchici.) Troppo spesso le API basate su parametri finiscono per essere una massa di mene di opzioni scarsamente organizzate.

Questo è un "vantaggio tangibile". Un buon stile di codifica in qualsiasi dominio può avere un impatto diretto sulla produttività e sulla riduzione dei difetti. Lo stile chiaro e coerente in un'API è particolarmente importante perché l'API è qualcosa che molti sviluppatori useranno e qualcosa che è destinato alle persone che non hanno progettato e codificato il software.

    
risposta data 24.07.2013 - 22:27
fonte

Leggi altre domande sui tag