example - servicio rest c# json
La clase System.Net HttpStatusCode no tiene código 422 (2)
¿Hay una manera de manejar con gracia el código de estado de http 422? Estoy buscando la mejor práctica aquí. Sé que HttpStatusCode es una enumeración, así que lo que intenté es esto,
HttpStatusCode Unprocessable = (HttpStatusCode)422;
if (Response == (HttpStatusCode)422)
Pero no me permite compararlo. ¿Estoy haciendo algo mal aquí?
Cuál es la mejor manera posible de agregar este código de estado en tiempo de ejecución.
Estaba usando RestSharp, que devuelve el código de estado de respuesta del servidor en una propiedad de tipo HttStatusCode
y necesitaba verificar una respuesta 422, pero el tipo no la incluye. Afortunadamente todavía pude probar usando lo siguiente:
if(response.StatusCode == (HttpStatusCode)422)
{
// Do my stuff..
}
Si más de una acción en su API puede devolver un 422, podría considerar envolver la verificación en un método de extensión como tal:
public static bool IsUnprocessableEntityResponse(this HttpResponseMessage message)
{
Requires.NotNull(message, nameof(message));
return (int) message.StatusCode == StatusCodes.Status422UnprocessableEntity;
}
Que luego puedes usar en tu cliente así:
if (response.IsUnprocessableEntityResponse())
return Response.UnprocessableEntity<Resource>();
Mientras que también evita el número mágico 422 en su código fuente al mismo tiempo.