2012-03-10 12 views

Respuesta

6

¡No lo hagas! Use el código de respuesta HTTP correcto para la situación. Por ejemplo, si el usuario publica un nuevo registro a su sistema:

POST record/id 
New record stuff 

Dar retroalimentación no sólo como una representación HTML con una cara sonriente feliz, sino también como el código de respuesta HTTP correcta. (. Es decir HTTP 201 - Creado)

201 Created 
+0

Solo parcialmente correcto. Si el 'id' del registro se conoce de antemano para el User-Agent (UA), el método correcto para usar (cuando sea técnicamente posible) es PUT. Si el 'UA 'no es conocido por el UA y se le asigna el lado del servidor, el servidor debe responder con el código de respuesta 201 y usar el encabezado' Ubicación' para indicar el URI del recurso recién creado al UA. (Quería aclarar esto, ya que OP preguntó específicamente sobre los redireccionamientos). – MicE

+0

@MicE ¡gracias por aclarar! – supertopi

+0

Desde mi publicación original, he estado buscando algunos marcos existentes en busca de inspiración y he descubierto que el framework Yii parece hacer exactamente lo que sugerí originalmente. – jx12345

2

Debe responder una acción de "crear" una respuesta semántica mientras se muestra el registro recién creado, esto generalmente se considera la norma.

Además, agregar un encabezado de ubicación que indique la acción de "lectura" para el elemento recién agregado es aún mejor.

Es posible que desee echar un vistazo a la vista de la madurez del modelo de Richardson en eso, hay un buen article que Martin Fowler escribió sobre él.

+0

Gracias, acabo de leer el artículo que mencionaste y realmente resume bien, gracias de nuevo – jx12345

2

Si está creando un registro, entonces HTTP 201 es el código de estado recomendado.

Sin embargo, hay ciertas situaciones en las que es posible que desee redireccionar. Por ejemplo, su API ya no se encuentra en la URL actual y desea redirigir a los usuarios a la nueva URL.

+0

bueno, eso es lo que encontré, estaba creando la cosa en la base de datos y luego usando la 'vista' existente que solía ver algo, pero entonces cualquier enlace relativo estaría en quiebra porque estaría en el ejemplo.com/crear en lugar de donde debería estar, es decir. example.com/view/1 así que decidí usar un redireccionamiento pero me sentí mal. – jx12345

Cuestiones relacionadas