UrbanPro
true

Learn .NET MVC from the Best Tutors

  • Affordable fees
  • 1-1 or Group class
  • Flexible Timings
  • Verified Tutors

Search in

ASP.NET Web API 2 action method return types

Sachin Tekriwal
04/07/2017 0 0

Here, in this article we will learn ASP.NET Web API 2 action method return types.

A Web API 2 action method return types can be any of the following :

  • Void
  • HttpResponseMessage
  • IHttpActionResult
  • Other type or Complex type




A Web API 2 action method return types can be any of the following

Void

When an ASP.NET Web API return type is void, it will return an empty HTTP response.

In the following example a web API with void return:

Example

public class SampleController : ApiController
{
  public void Post()
   {
            
   }
}

Note: We are using fiddler to call Web API, it is a free web debugging proxy which logs all HTTP(s) traffic between your computer and the Internet



Result

Calling sample web API in fiddler
Web API 2 action method void return 


It is returning status code 204 No Content (an empty HTTP response)
Web API 2 action method void return status code 204 No Content (an empty HTTP response) 





 

HttpResponseMessage

  • When Web API return type is HttpResponseMessage, Web API converts the return value directly into an HTTP response message.
  • We can set the status code, content as per our requirement.

 

In the following example a web API with HttpResponseMessage return:

Example

public HttpResponseMessage Get()
{
    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "value1");            
    return response;
}


Result

Calling sample Web API with HTTP GET request
Web API 2 action method HttpResponseMessage return 


In Response, It is returning status code 200 OK and Content
Web API 2 action method void return status code 204 No Content (an empty HTTP response) 



Note:Web API serialized model into the response body based on request header formatter



In the following example a web API return HttpResponseMessage with list of Countries in response body:

Example

public HttpResponseMessage Get()
{
   // list of Countries
   List Countries = new List();
    Country country = new Country();
    country.ID = 1;
    country.CountryName = "USA";
    country.Capital = "Washington";
    Countries.Add(country);
        
    //Countries to the response body.             
    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, Countries);            
    return response;
}


Result

In Response, It is returning status code 200 OK and Content
Web API 2 action method HttpResponseMessage return 






IHttpActionResult

IHttpActionResult is introduced in Web API 2, IHttpActionResult interface acts like a factory for HttpResponseMessage.

There are some advantages of using the IHttpActionResult over HttpResponseMessage

  • The code is cleaner and easier to read
  • Unit testing for controller action methods become easy
  • It comes with custom built in responses
    • Ok
    • NotFound
    • Exception
    • Unauthorized
    • BadRequest
    • Conflict
    • Redirect

In the following example a web API return IHttpActionResult with list of Countries in response body:

Example

public IHttpActionResult Get(int id)
{
   // list of Countries
   List Countries = new List();
    Country country = new Country();
    country.ID = 1;
    country.CountryName = "USA";
    country.Capital = "Washington";
    Countries.Add(country);
    
    //finding country based on provided id
    var result = Countries.FirstOrDefault(x=> x.ID ==id);
    if (result == null)
    {
        //create a 404 (Not Found) response
        return NotFound();                
    }
    else
    {
        //creates a 200 (OK) response that contains the country
        return Ok(result);
    }
}





Result

Calling sample web API with HTTP GET request and id
Web API 2 action method HttpResponseMessage return 


In Response, It is returning status code 200 OK and Content
Web API 2 action method HttpResponseMessage return 


Calling sample web API with HTTP GET request and id(which is not exist)
Web API 2 action method HttpResponseMessage return 


In Response, It is returning status code 404 Not Found
Web API 2 action method HttpResponseMessage return 






 

Other type or Complex type

  • A Web API can return other or custom complex type
  • Web API serialize value and return it into the response body
  • The response status code 200 OK
  • But in this approach we cannot directly return an error code, still we can throw an HttpResponseException for error codes

In the following example a web API with Complex return type:

Example

public class CountryController : ApiController
{
    public IEnumerable Get()
    {
        List Countries = new List();
        Country country = new Country();
        country.ID = 1;
        country.CountryName = "USA";
        country.Capital = "Washington";
        Countries.Add(country);
        return Countries;
    }
}

Result

Calling Country web API with HTTP GET request
Web API 2 action method Complex return type 


In Response, It is returning status code 200 OK and Content
Web API 2 action method void return status code 204 No Content (an empty HTTP response) 
0 Dislike
Follow 0

Please Enter a comment

Submit

Other Lessons for You

Garbage collector [ GC ] in .NET framework
Garbage collector is responsible for the "automatic memory management - AMM" in .NET framework. Garbage collector is one of the properties of .NET framework components CLR . Why there is a need of "Memory...

.NET With AngularJS Training Program Syllabus
What You will Learn in .NET with AngularJS Training Program? Introduction to .Net: Features of .Net, CTS, CLS, CLR and MSIL. C# & .Net Basics and Branching & Flow Control. OOPs Concepts,...

ASP.Net MVC 5 Error: The controller for path '/' was not found or does not implement IController
When a page, that is located inside an area, wants to access a controller that is located outside of this area (such as a shared layout page or a certain page inside a different area), the area of this...
M

Mohammad Shafi

0 0
0

C# (Sharp) Syllabus
C# (Sharp) Syllabus: C# (Sharp) Syllabus Lesson 01: Getting Started Lesson 02: Expressions, Types, and Variables Lesson 03: Control Statements - Selection Lesson 04: Control...

Multi-core CPU utilization using Task Parallel Library in c#
Nowadays, we are using multiple core systems. We must write our .NET applications in such a way that we must utilise the complete computing power of the machine. The parallel task library(TPL) allows...

Looking for .NET MVC ?

Learn from Best Tutors on UrbanPro.

Are you a Tutor or Training Institute?

Join UrbanPro Today to find students near you
X

Looking for .NET MVC Classes?

The best tutors for .NET MVC Classes are on UrbanPro

  • Select the best Tutor
  • Book & Attend a Free Demo
  • Pay and start Learning

Learn .NET MVC with the Best Tutors

The best Tutors for .NET MVC Classes are on UrbanPro

This website uses cookies

We use cookies to improve user experience. Choose what cookies you allow us to use. You can read more about our Cookie Policy in our Privacy Policy

Accept All
Decline All

UrbanPro.com is India's largest network of most trusted tutors and institutes. Over 55 lakh students rely on UrbanPro.com, to fulfill their learning requirements across 1,000+ categories. Using UrbanPro.com, parents, and students can compare multiple Tutors and Institutes and choose the one that best suits their requirements. More than 7.5 lakh verified Tutors and Institutes are helping millions of students every day and growing their tutoring business on UrbanPro.com. Whether you are looking for a tutor to learn mathematics, a German language trainer to brush up your German language skills or an institute to upgrade your IT skills, we have got the best selection of Tutors and Training Institutes for you. Read more