Pregunta

Estoy desarrollando una API REST sencilla, y totalmente en el amor con la forma minimalista que es. Pero estoy incierto en cuanto a los códigos de respuesta HTTP correctos para diversas situaciones:

  1. query incorrectamente formado

  2. correctamente formado consulta se refiere a un recurso que no existe

  3. Recursos eliminado correctamente

  4. Recursos editado éxito

Actualmente estoy pensando que sería 1 403 Forbidden; 2 habría 410 Gone; 3 y 4 se 202 Accepted. Es lo que suena bien?

¿Fue útil?

Solución

Para # 1, 403 sugiere su aplicación entiende la petición, pero suele cumplirla (es decir, el usuario actual no tiene permiso para hacer eso por alguna razón). Creo que 400 Solicitud errónea podría tener más sentido en este caso.

Para # 2 - Yo pensaría 404 tendría más sentido no se encuentra es decir, los recursos, a menos que el recursos existía en algún momento, y luego se ha suprimido, en cuyo caso sería justo 410 -. pero no muchos clientes saben qué hacer con 410

Para # 3 y # 4 -. 200 si se procesó la eliminación con éxito, 202 si el borrado se pone en cola y será manejado en una fecha posterior "fuera de banda"

RFC 2616 ofrece grandes explicaciones de lo que significa en cada código de respuesta términos bastante comprensible.

Otros consejos

  1. 400
  2. 404
  3. 200
  4. 200
  5. 201 - recurso creado correctamente

1). 400 - Solicitud incorrecta estándar, 403 significa que la solicitud tiene el formato correcto, pero que no pueden acceder a él

2). 404 - 410 de un implica que existía el recurso, pero se ha movido deliberadamente

3). y 4). 200 si la acción ha pasado con éxito por el momento de enviar la respuesta, 202 si la acción está pendiente. En la práctica es probable para 202 acciones de eliminación (en los que podrían ser objeto de revisión), pero que puede o no querer volver inmediatamente a un 200 de todos modos por lo que parece elimina realmente al usuario. Esa es una cuestión de diseño en mi humilde opinión.

Obtener el Richardson & Ruby libro - tiene un apéndice útil sobre su pregunta y se requiere la lectura de cualquier manera

¿por qué no usar el códigos de respuesta HTTP . Se podría conseguir todas las optimizaciones (por ej, 303, 304) / infraestructura instalada para http gratis.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top