Mis colegas y yo estamos implementando una serie de servicios HTTP RESTful, y estamos tratando de asegurarnos de que estamos a) siguiendo las especificaciones, yb) haciendo lo correcto " donde la especificación es corto de detalles.Opiniones necesarias sobre la atomicidad de un RESTful PUT
Aquí es una situación particular que hemos llegado a y está buscando opiniones de la comunidad sobre:
Suponga que tiene un recurso/personas/Bob, y su cliente va a actualizar con un PUT. El servidor puede generar representaciones para/People/Bob en application/json y text/html. El servidor puede interpretar representaciones para/People/Bob en application/json.
Teniendo en cuenta esta solicitud:
PUT /People/Bob Content-Type: application/json Accept: application/xml { name: "Still Bob" }
el servidor no puede producir una representación XML, pero puede procesar el JSON entrante. Entonces sabemos que la respuesta correcta es que el servidor devuelva el estado 406.
La pregunta es: ¿debería el servidor haber realizado la actualización a/People/Bob?
Esta respuesta a una pregunta previa de StackOverflow podría ser útil: http://stackoverflow.com/questions/982351/alternative-bodies-for-http-put/984436#984436 –
Gracias, Matt. Creo que ese hilo aclara un punto de confusión que algunos tienen sobre Content-Type versus Accept (y 406 contra 415). Lo que estoy preguntando aquí es la atomicidad de manejar una solicitud ya que la especificación parece un poco corta aquí. – user30921