Nunca he construido una API RESTful antes y me pregunto qué tan discreta debería ser.
Por ejemplo, supongamos que tengo un cliente que tiene un nombre, dirección, número de teléfono, dirección de correo electrónico, idioma, etc.
¿Tiene sentido que haya una manera de actualizar cada campo individual (dirección de actualización, dirección de correo electrónico de actualización, etc.), o debería haber una única actualización para todo el cliente y cada campo es opcional?
Respuestas:
Tiene una acción de actualización para un recurso. Como regla general, una tabla en su base de datos será un recurso. Entonces, en su ejemplo, hay un controlador para el Cliente con una acción de actualización y los campos son opcionales en la medida de lo posible.
Puede haber excepciones a esto (por ejemplo, si actualiza la contraseña, espera contraseña y contraseña_confirmación), pero esto es válido para la mayoría de los casos.
Es más probable que las excepciones sean controladores que tienen acciones limitadas para algunos recursos, como un SessionsController que solo se puede crear y destruir. Es muy poco probable que desee tener acciones para campos únicos.
En su ejemplo, una cosa podría manejarse como un recurso propio y esa es la dirección. Si tuviera una tabla para direcciones, especialmente si hubiera más de una dirección por cliente (facturación, entrega ...), esto podría manejarse como un recurso anidado. Pero, de nuevo, una acción de actualización para todo el recurso de dirección.
fuente