Sto cercando di rendere rapidamente un'API, seguendo i principi REST, per una semplice applicazione Web che ho creato. Il primo posto in cui verrà utilizzata l'API è l'interfaccia con un'app per iPhone. L'API deve solo gestire alcune chiamate di base, ma tutte richiedono l'autenticazione, nulla è dati pubblici.Creazione di una semplice API RESTful
- login/autenticazione utente
- lista get di record in gruppo di utenti ancora
- lista get, solo quelli che hanno cambiato (appena aggiunto o aggiornato)
- aggiornamento di un record
Così , seguendo i principi REST, dovrei impostare lo schema uri ?:
- mysite.com/api/auth (post?)
- mysite.com/api/users (GET)
- mysite.com/api/update (post?)
e le risposte saranno in XML per cominciare, anche JSON più tardi.
Sul sito Web, gli utenti accedono con e-mail e password. Dovrei lasciare che ottengano un "token" nella pagina del loro profilo per passare con ogni richiesta di API? (renderebbe superflua la risorsa URI standalone/auth).
Best practice per strutturare la risposta xml? Sembra che con il riposo, che si dovrebbe tornare o 200 ok e l'XML o effettivi codici di stato corretto vale a dire 401 ecc
Tutti gli indicatori generali apprezzati.
Giusto: l'autenticazione di tipo web-app tradizionale crea lo stato, che è non-riposante. OP vorrebbe sfruttare l'autenticazione HTTP o qualche altro schema, che non richiede che il client tenga i cookie, ecc. – timdev
500 non dovrebbe essere utilizzato per la maggior parte degli errori del lato client. Cioè se l'errore è rilevabile, dovrebbe esserci un modo per informare il cliente su di esso. –
@georgemarian è perfettamente ragionevole restituire un oggetto di errore XML o una descrizione approssimativa con codice di stato 500. È comunque un utile indicatore che ci sia stato un errore (es. Richiesta non valida) invece di "non ha restituito alcun record" – jayshao