Eu nunca criei uma API RESTful antes e estou me perguntando quão discreta deveria ser.
Por exemplo, digamos que eu tenha um cliente com nome, endereço, número de telefone, endereço de email, idioma etc.
Faz sentido que haja uma maneira de atualizar cada campo individual (endereço de atualização, endereço de email de atualização etc.) ou deve haver apenas uma única atualização para todo o cliente e cada campo é opcional?
Respostas:
Você tem uma ação de atualização para um recurso. Como regra geral, uma tabela no seu banco de dados será um recurso. Portanto, no seu exemplo, há um controlador para o Cliente com uma ação de atualização e os campos são opcionais na medida do possível.
Pode haver exceções a isso (por exemplo, se você atualizar a senha que você espera password & password_confirmation), mas isso é válido na maioria dos casos.
É mais provável que as exceções sejam controladores que tenham ações limitadas para alguns recursos, como um SessionsController que só pode ser criado e destruído. É muito improvável que você deseje ter ações para campos únicos.
No seu exemplo, uma coisa pode ser tratada como um recurso próprio e esse é o endereço. Se você tivesse uma tabela para endereços, especialmente se houvesse mais de um endereço por cliente (cobrança, entrega ...), isso poderia ser tratado como um recurso aninhado. Mais uma vez, uma ação de atualização para todo o recurso de endereço.
fonte