2012-05-15 29 views

risposta

15

Non c'è alcuna differenza. REST descrive un modo di interagire con un server HTTP, non ciò che il server deve restituire in risposta. La maggior parte delle app web interagisce con il lato server tramite richieste POST o GET con qualsiasi informazione aggiuntiva necessaria per soddisfare la richiesta in una sottomissione di modulo per POST o la stringa di query per GET. Quindi, se si desidera eliminare qualcosa dal server, in genere eseguono il POST con un modulo che contiene dati che specificano una risorsa insieme a un'istruzione per eliminarlo.

Tuttavia, HTTP implementa metodi (noti anche come verbi) diversi da GET o POST. Implementa, tra l'altro, HEAD (restituisce le stesse intestazioni che avresti fatto per un GET, ma senza corpo di risposta), PUT (Prendi il corpo della richiesta e memorizza il suo contenuto in qualsiasi URL a cui è stata fatta la richiesta PUT), e CANCELLA (Elimina qualsiasi risorsa esistente all'URL specificato). Un'interfaccia REST utilizza semplicemente questi verbi aggiuntivi per convalidare il significato della richiesta al server.

I browser in genere supportano solo GET e POST per le richieste "normali" (non XHR), ma strumenti come Curl possono emettere il set completo di verbi HTTP. Puoi anche usare verbi aggiuntivi con tecniche basate su XHR come AJAX.

Dovrai comunque fornire un'API non REST tradizionale per i browser da utilizzare, a meno che tu non stia rendendo necessario il supporto di javascript e XHR per l'utilizzo della tua app.

+0

Ciao, voglio creare un'API che verrà utilizzata da app per dispositivi mobili e siti Web. Quale sarebbe il modo migliore di fare l'API (REST o Non REST)? – Shaolin

7

REST si riferisce principalmente all'utilizzo del protocollo HTTP nel modo previsto. Utilizzare il metodo HTTP GET su un URL per recuperare informazioni, possibilmente in diversi formati basati su intestazioni HTTP Accept. Utilizzare il metodo HTTP POST per creare nuovi elementi sul server, PUT per modificare elementi esistenti, DELETE per eliminarli. Rendere l'API idempotente, ovvero ripetere la stessa query con la stessa informazione dovrebbe produrre lo stesso risultato. Struttura degli URL in modo gerarchico, ecc.

REST è solo un principio guida su come utilizzare gli URL e il protocollo HTTP per strutturare un'API. Non dice nulla sui formati di ritorno, che potrebbero anche essere JSON.

Ciò è contrario, ad esempio, alle API che inviano messaggi binari o XML a una porta designata, non utilizzando affatto le differenze nei metodi HTTP o negli URL.

Problemi correlati