anonymous
Log in
Log out
Search
Recents:
v3.0
My subscriptions
My posts
My profile
gx-l
Manejo del HTTP Response Code en Procedimiento
23/10/19 12:01
plusvalia
Replies:
4
Buenas! Estoy desarrollando un Procedimiento el cual voy a exponer como un servicio REST. Me gustaría poder definir el código de la respuesta en HTTP ante algunos errores de validación (en lugar de que devuelva HTTP 200). Actualmente estoy haciendo lo siguiente: > &BCLoanBalance.Load(0) > > If &BCLoanBalance.Success() > //TODO > Else > &Message = &BCLoanBalance.GetMessages().Item(1) > Do 'Error' > EndIf > > Sub 'Error' > &HTTPResponse.AddString(Format('{"error":{"code":"%1","message":"%2"}}', &Message.Id.Trim(), &Message.Description.Trim())) > Return > EndSub La variable &BCLoanBalance es un Business Component y el código de arriba siempre va a dar error pues no hay ningún elemento con Id = 0 (es a propósito). Este servicio REST hoy me devuelve el JSON del error que le agrego con la función AddString a &HTTPResponse pero el HTTP Status es 200. Me gustaría poder modificarlo a 500 o 400 por ejemplo. Probé utilizar la propiedad &HTTPResponse.ErrCode pero la misma es de solo lectura. ¿Se puede hacer eso desde Genexus? Gracias!! Mateo Fernández Executive Partner Email: mateofd@plusvalialabs.com LinkedIn: https://www.linkedin.com/in/mateofd <https://www.linkedin.com/in/mateofd> Web: http://www.plusvalialabs.com <http://www.plusvalialabs.com/> Make Tech Work for You...not the other way around Don't print this email unless you have to. Let's protect the Environment. No imprima este correo electrónico si no es necesario. Protejamos el Medio Ambiente. ----------------------------------------- Para Suscribirse/Desuscribirse: http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,1 Por consultas owner-gx-l@gxtech.com.uy
Buenas!
Estoy desarrollando un Procedimiento el cual voy a exponer como un servicio REST.
Me gustaría poder definir el código de la respuesta en HTTP ante algunos errores de validación (en lugar de que devuelva HTTP 200).
Actualmente estoy haciendo lo siguiente:
> &BCLoanBalance.Load(0)
>
> If &BCLoanBalance.Success()
> //TODO
> Else
> &Message = &BCLoanBalance.GetMessages().Item(1)
> Do 'Error'
> EndIf
>
> Sub 'Error'
> &HTTPResponse.AddString(Format('{"error":{"code":"%1","message":"%2"}}', &Message.Id.Trim(), &Message.Description.Trim()))
> Return
> EndSub
La variable &BCLoanBalance es un Business Component y el código de arriba siempre va a dar error pues no hay ningún elemento con Id = 0 (es a propósito).
Este servicio REST hoy me devuelve el JSON del error que le agrego con la función AddString a &HTTPResponse pero el HTTP Status es 200. Me gustaría poder modificarlo a 500 o 400 por ejemplo.
Probé utilizar la propiedad &HTTPResponse.ErrCode pero la misma es de solo lectura.
¿Se puede hacer eso desde Genexus?
Gracias!!
Mateo Fernández
Executive Partner
Email: mateofd@plusvalialabs.com
LinkedIn: https://www.linkedin.com/in/mateofd <https://www.linkedin.com/in/mateofd>
Web: http://www.plusvalialabs.com <http://www.plusvalialabs.com/>
Make Tech Work for You...not the other way around
Don't print this email unless you have to. Let's protect the Environment.
No imprima este correo electrónico si no es necesario. Protejamos el Medio Ambiente.
-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,1
Por consultas owner-gx-l@gxtech.com.uy
Replies
Esteban Carle
17/12/19 14:11
Por lo que tengo entendido… NOO, porque eso es el RESt a nivel de protocolo HTTP que lo hace (o sea si diera un error 500 automaticamente lo pone (son esos errore graves) Ahora los errores 400 que son funcionales en REST (por ej. que NO existe un registro) estimo también lo pone automatico.. Lo que he hecho. Es poner un param. De error de la propio sistema y devolver eso ante un error funcional (ej validar un dato y decir que NO esta correcto el mensaje )
Por lo que tengo entendido… NOO, porque eso es el RESt a nivel de protocolo HTTP que lo hace (o sea si diera un error 500 automaticamente lo pone (son esos errore graves) Ahora los errores 400 que son funcionales en REST (por ej. que NO existe un registro) estimo también lo pone automatico.. Lo que he hecho. Es poner un param. De error de la propio sistema y devolver eso ante un error funcional (ej validar un dato y decir que NO esta correcto el mensaje )
plusvalia
17/12/19 15:19
Gracias Esteban por tu respuesta! Saludos, Mateo > On Dec 17, 2019, at 2:11 PM, ecarle2 <ecarle2@adinet.com.uy>
Gracias Esteban por tu respuesta! Saludos, Mateo > On Dec 17, 2019, at 2:11 PM, ecarle2
Google
17/12/19 15:24
Mateo, Que generador usas ? Saludos, Alberto El mié., 23 oct. 2019 a las 12:01, "Mateo Fernández (Plusvalía Labs)" (< mateofd@plusvalialabs.com>)
Mateo, Que generador usas ? Saludos, Alberto El mié., 23 oct. 2019 a las 12:01, "Mateo Fernández (Plusvalía Labs)" (< mateofd@plusvalialabs.com>)
plusvalia
17/12/19 15:26
.NET > On Dec 17, 2019, at 3:24 PM, Alberto Fernandez <gxbeto@gmail.com>
.NET > On Dec 17, 2019, at 3:24 PM, Alberto Fernandez
Back to gx-l