Imagine que un usuario acaba de publicar datos en su aplicación web y desea volver a mostrar la página actual con un mensaje sobre su éxito o falla. Esto se complica.¿Cómo maneja todas las formas en que puede despachar desde un POST HTTP?
Si los datos son válidos y el usuario espera html, desea emitir un redireccionamiento para que la actualización no los vuelva a publicar. Desea redirigir al referer, si existe, y mostrar un mensaje. Si no están esperando html, simplemente puede devolver 200 OK.
Si los datos no son válidos y el usuario espera html, desea volver a procesar la página de donde provienen, con un error visible, para que puedan volver a publicarse. Para hacer esto, debe ejecutar la acción anterior y avisarle del mensaje de error. Para decidir cuál fue la acción anterior, tal vez la incluyó como un parámetro oculto en el formulario. Si no esperan html, puede devolver un error de cliente 4xx aplicable.
Me encuentro haciendo este tonto baile demasiadas veces. Entonces las preguntas son:
1) ¿Cómo resumiría todo este proceso para que cualquier publicación de formulario pueda aprovecharlo?
2) ¿Cuál es la forma más sostenible o menos repetitiva de lograr esto en su marco web favorito?
3) ¿Hay algo que cambiaría a todo este proceso que lo haría más simple?
Idea 1: Nunca renderizar en una publicación, siempre redirija. Rellene los datos de error en la sesión por una fracción de segundo entre las solicitudes y luego desactívelas, al igual que el mensaje de éxito. De esta forma, las publicaciones válidas y no válidas se pueden gestionar de la misma manera.
Idea 2: No hagas ninguna publicación HTTP normal. Solo usa ajax. Ahora no tiene que preocuparse por renderizar o redireccionar en absoluto. Esto solo sería útil si ya tienes una aplicación ajax-heavy.
Supongo que no sabes de dónde vienes. A menudo me encuentro con situaciones en las que me gustaría publicar en la misma URL desde diferentes páginas, para volver a utilizar una acción. En el caso donde los datos no son válidos y estoy renderizando en lugar de redirigir, necesitaría intuir la acción anterior. Supongo que aún podría intuir esto del referente. –