DEV Community

Juan Diego Mejía Maestre
Juan Diego Mejía Maestre

Posted on

2 2

Cómo devolver un HttpStatusCode y un Json a la vez en una API con .net framework

Sí estás intentando devolver un resultado Json y un HttpStatusCode a mismo tiempo y no sabes cómo, aquí te diremos.

para algunos código HTTP ya existen unos métodos predeterminado para devolver el código y una respuesta Json. por ejemplo

Ok() => HttpStatusCode.OK => 200
BadRequest() => HttpStatusCode.BadRequest => 400

algunos métodos solo retornan un estado HTTP sin objecto JSON pero si quieres retorna cualquier estado HTTP sin una respuesta JSON intenta esto.


StatusCode(System.Net.HttpStatusCode.Unauthorized);
StatusCode(System.Net.HttpStatusCode.OK);
StatusCode(System.Net.HttpStatusCode.NotFound);
StatusCode(System.Net.HttpStatusCode.Forbidden);
Enter fullscreen mode Exit fullscreen mode

Pero si lo que quieres es devolver cualquier Estado HTTP con una respuesta JSON debe hacer lo siguiente

Content<T>(System.Net.HttpStatusCode.Unauthorized,new T() { });
Content<LoginRequest>(System.Net.HttpStatusCode.Unauthorized,new LoginRequest() { });
Enter fullscreen mode Exit fullscreen mode

Donde T es el tipo de objecto que se devolver en el JSON, puedes poner la clase del objecto que vayas a devolver en la respuesta JSON.

Espero haberte ayudado, te agradecería que me sigas en mis redes sociales.

YouTube

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

API Trace View

Struggling with slow API calls? 🕒

Dan Mindru walks through how he used Sentry's new Trace View feature to shave off 22.3 seconds from an API call.

Get a practical walkthrough of how to identify bottlenecks, split tasks into multiple parallel tasks, identify slow AI model calls, and more.

Read more →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay