Errores de usuario: throw exception vs http_response_code(500)
Publicado por Gabriel (3 intervenciones) el 02/05/2017 23:12:43
Estimados,
Buenas tardes, como están?
La idea del post es que me ayuden a definir un proceso de devolución de errores y poder manejarlos de manera agradable del lado del cliente.
Actualmente estoy desarrollando una app en la que desacople el front del back: por un lado tengo los html (sin código php en su interior) y casi por regla, cada html tiene un controller javascript que este es el que hace, por medio de ajax, la llamada a un .php con los parámetros que se necesita para el proceso.
Una vez terminado el proceso en el back, devuelvo un json y este lo tomo en el javascript y hago lo que se necesite:
Espero se entienda, la duda es mas que nada conceptual ya que la app funciona bien. en estos momentos le estoy dando mucha importancia a la arquitectura y a tener un desarrollo con una buena base.
Saludos.-
Buenas tardes, como están?
La idea del post es que me ayuden a definir un proceso de devolución de errores y poder manejarlos de manera agradable del lado del cliente.
Actualmente estoy desarrollando una app en la que desacople el front del back: por un lado tengo los html (sin código php en su interior) y casi por regla, cada html tiene un controller javascript que este es el que hace, por medio de ajax, la llamada a un .php con los parámetros que se necesita para el proceso.
Una vez terminado el proceso en el back, devuelvo un json y este lo tomo en el javascript y hago lo que se necesite:
if (this.readyState == 4 && this.status == 200) {
callbackSuccess(this.responseText);
}
Ahora bien, hay veces que desde el back quiero forzar un error/advertencia, por ejemplo, en el login, que la contraseña es incorrecta, actualmente esa regla la devuelvo normalmente con un json y en el front ingresa por el código antes mencionado (obviamente en el json que envío desde el back genero un objeto con un estado en particular distinto a las peticiones OK y el mensaje que deseo mostrarle al cliente), pero entre en una disyuntiva de si conceptualmente lo que estoy haciendo esta bien encarado (de mas esta decir que el desarrollo funciona y hace lo esperado), que quiero decir con esto, mi duda es si desde el back tanto las reglas de negocio que no pasaron con éxito (password incorrecto, clave caducada, etc) como una excepción lanzada (throw new ...) deben volver al cliente como readyState == 4 y this.status == 200 o esta bien provocar en el back un http_response_code(500) y devolver el json y en el cliente capturarlo como:if (this.readyState == 4 && this.status == 500) {
callbackError(this.responseText);
}
Espero se entienda, la duda es mas que nada conceptual ya que la app funciona bien. en estos momentos le estoy dando mucha importancia a la arquitectura y a tener un desarrollo con una buena base.
Saludos.-
Valora esta pregunta


0