¿Qué tan discreto debe ser una API RESTful?

12

Nunca he creado una API RESTful antes y me pregunto qué tan discreto debería ser.

Por ejemplo, digamos 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 (actualizar la dirección, actualizar la dirección de correo electrónico, etc.) o debería haber una única actualización para todo el cliente y cada campo es opcional?

    
pregunta satur9nine 25.12.2013 - 08:08

1 respuesta

17

Tienes 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 que espera, contraseña & password_confirmation), pero esto es cierto en la mayoría de los casos.

Es más probable que las excepciones sean controladores que tengan acciones limitadas para algunos recursos, como un SessionsController que solo se puede crear y destruir. Es muy poco probable que desee realizar acciones para campos individuales.

En su ejemplo, una cosa podría manejarse como un recurso propio y esa es la dirección. Si tuviera una tabla de direcciones, especialmente si hubiera más de una dirección por cliente (facturación, entrega ...), esto podría manejarse como un recurso anidado. Pero nuevamente, una acción de actualización para todo el recurso de dirección.

    
respondido por el thorsten müller 25.12.2013 - 08:26

Lea otras preguntas en las etiquetas