Create and Consume Web API in MVC 4

In this article you will learn how to create a MVC Web API and how to consume using JSON.

Why User Web API

Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. The ASP.NET Web API is an ideal platform for building REST applications on the .NET Framework.

Getting Started

Create a new project in Visual Studio 2012 and select ASP.NET MVC 4 Web Application and select Web API template and click OK.

Here is my UserModel Class:

public class UserModel
{
    
public int UserId { get; set; }
    
public string UserName { get; set; }
    
public string UserAddress { get; set; }
    
public string UserMobile { get; set; }
    
public string UserCountry { get; set; }
}

Here is my controller code:

using CreateSonsumeWebAPIInMVC.Models;

public
class ValuesController : ApiController
{
       
// GET api/values
        public IEnumerable<UserModel> Get()
        {
           
return new UserModel[]
            {
               
new UserModel()
                {
                    UserId= 1,
                    UserName =
"Raj Kumar",
                    UserAddress =
"New Delhi",
                    UserMobile =
"9899461650",
                    UserCountry =
"India"
                },
               
new UserModel()
                {
                    UserId= 2,
                    UserName =
"Mahesh Chand",
                    UserAddress =
"Philadelphia",
                    UserMobile =
"610-484-5670",
                    UserCountry =
"USA"
                },
               
new UserModel()
                {
                    UserId= 3,
                    UserName =
"Stephen Hoffman",
                    UserAddress =
"New York",
                    UserMobile =
"610-484-5680",
                    UserCountry =
"USA"
                },
               
new UserModel()
                {
                    UserId= 4,
                    UserName =
"Deepak Malhotra",
                    UserAddress =
"Brisbane",
                    UserMobile =
"610-487-5680",
                    UserCountry =
"Australia"
                },
               
new UserModel()
                {
                    UserId= 5,
                    UserName =
"John Lehman",
                    UserAddress =
"Johansburg",
                    UserMobile =
"610-187-5680",
                    UserCountry =
"South Africa"
                }
            };
        }
 
       
// GET api/values/5
        public UserModel Get(int id)
        {
           
return new UserModel()
            {
                UserId = id,
                UserName =
"Raj Kumar",
                UserAddress =
"New Delhi",
                UserMobile =
"9899461650"
            };
}

If you want to see the output, then you need to type the URL like this:

http://localhost:49012/api/values

The result in XML format looks like this:

img1.jpg

Image 1.

http://localhost:49012/api/values/1

img2.jpg

Image 2.

Now let's consume this on a view using JSON.

@section scripts{

    <script type="text/javascript">

        $(document).ready(function () {

            $('#Search').click(function () {               

                $('#users').empty();

                $.getJSON("/api/values", function (data) {                  

                    $.each(data, function (i, user) {

                        alert(i);

                        //alert(user.UserName);

                        var content = user.UserId + ' ' + user.UserName;

                        content = content + ' ' + user.UserAddress + ' ' + user.UserMobile + ' ' + user.UserCountry;

                        alert(content);

                        $('#users').append($('<li>', { text: content }, '</li>'));

                    });

                });

            });

        });

    </script>

}

<div>

    <div>

        <h1>User Listing</h1>       

        <input id="Search" type="button" value="Get Users" />

    </div>

    <div>

        <ul id="users"></ul>

    </div>

 

</div>

Now run the application to see the output:

img3.jpg

Image 3.
 

Up Next
    Ebook Download
    View all
    Learn
    View all