Quanto dovrebbe essere discreta un'API RESTful?

12

Non ho mai creato un'API RESTful prima e mi chiedo quanto dovrebbe essere discreto?

Ad esempio, diciamo che ho un cliente che ha un nome, indirizzo, numero di telefono, indirizzo email, lingua, ecc.

Ha senso che ci sia un modo per aggiornare ogni singolo campo (indirizzo di aggiornamento, aggiornamento dell'indirizzo email, ecc.) o dovrebbe esserci un solo aggiornamento per l'intero cliente e ogni campo è facoltativo?

    
posta satur9nine 25.12.2013 - 08:08
fonte

1 risposta

17

Hai un'azione di aggiornamento per una risorsa. Come regola approssimativa una tabella nel tuo database sarà una risorsa. Quindi nel tuo esempio c'è un controller per il Cliente con un'azione di aggiornamento e i campi sono facoltativi il più possibile.

Ci possono essere delle eccezioni (ad esempio se aggiorni la password che ti aspetti password e password_confirmation), ma ciò è vero per la maggior parte dei casi.

È più probabile che le eccezioni siano controller che hanno azioni limitate per alcune risorse, come un SessionsController che può essere creato e distrutto. È molto improbabile che tu voglia avere azioni per singoli campi.

Nel tuo esempio una cosa può essere gestita come una risorsa propria e questo è l'indirizzo. Se avessi una tabella per gli indirizzi, soprattutto se ci fosse più di un indirizzo per cliente (fatturazione, consegna ...), questa potrebbe essere gestita come risorsa nidificata. Ma di nuovo un'azione di aggiornamento per l'intera risorsa di indirizzo.

    
risposta data 25.12.2013 - 08:26
fonte

Leggi altre domande sui tag