Get the XML Output By Using the SelfHosting URL in Web API

Introduction

In this article you will see how to find the XML output on the self-hosting URL. Here first we self-host the application on the URL "http://localhost:8080" and then copy this URL to the browser and add the "api/items" for showing the API controller value. Here we need the "Microsoft ASP. Net Web API Self Host" package.

Use the following procedure to create the sample application.

Step 1

First we create the console application.

  • Start Visual Studio 2012.
  • Select "New Project" from the Start page.
  • In the Templates, select "Installed templates" -> "Visual C#".
  • Select "Console application" and change the name to "Hosting".

Create Coonsole Application

  • Click on the "OK" button.
Step 2

Set the ".Net Framework 4".

  • In the "Solution Explorer" right-click on the  project.
  • Select "Properties".
  • In the "Properties windows" select the ".Net Framework 4" from the Drop Down List of Target Folder.

Select Framework

  • For applying the change open a prompt and click on "Yes".

Step 3

We check that the Nuget Package Manager is installed or not.

  • Go to the "Tools" menu.
  • If there is a "Library Package Manager" visible then the "Nuget Package Manager" is installed.
  • If "Library Package Manager" is not visible then it is not installed.

For installation of "Nuget Package Manager":

  • Go to the "Tools" menu then select "Extension and Updates".
  • In the "Extension and Updates" dialog box select "Online".
  • In the search box type "nuget package manager".
  • Select the "Nuget Package Manager" and Install it.

Step 4

Now we install the Web API Self-Host Package.

  • Go to the "Tools" menu then select "Library Package Manager" -> "Manages Nuget Packages For Solution".
  • In the "Nuget Package Manager" dialog box type "Microsoft.AspNet.WebApi.SelfHost".
  • Select the ASP.NET Web API Self Host and click "Install".

Step 5

Create the Model class:

  • In the "Solution Explorer".
  • Right-click on the project then select "Hosting" -> "Add" -> "Class".
  • Change the name of the class to "Item".

Add Model Class

  • Click on the "OK" button.

Add the following code:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Hosting

{

     public class Item

    {

        public int Id { get; set; }

        public string Name { get; set; }

        public string Category { get; set; }

    }

}

 

Step 6

To add a Controller class:

  • In the "Solution Explorer".
  • Right-click on the project then select "Hosting" -> "Add" -> "Class".
  • Change the name of the class to "ItemsController".
  • Click on the "OK" button.

Add the Following Code:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Text;

using System.Web.Http;

namespace Hosting

{

     public class ItemsController : ApiController

    {

     Item[] items = new Item[]  

        { 

            new Item { Id = 1, Name = "Apple", Category = "Fruit" }, 

            new Item{ Id = 2, Name = "Tomato", Category = "vasitable" }, 

            new Item{ Id = 3, Name = "T-Shirt", Category = "cloths"

        };

     public IEnumerable<Item> GetAllItems()

        {

            return items;

        }

     public Item GetItemById(int id)

        {

            var item = items.FirstOrDefault((i) => i.Id == id);

            if (item == null)

            {

                throw new HttpResponseException(HttpStatusCode.NotFound);

            }

            return item;

        }

     public IEnumerable<Item> GetItemsByCategory(string category)

        {

            return items.Where(i => string.Equals(i.Category, category,

                    StringComparison.OrdinalIgnoreCase));

        }

    }

}

 

Step 7

Now we host our Web API.

Open the "Program.cs" file and add the following code into this file:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Web.Http;

using System.Web.Http.SelfHost;

namespace Hosting

{

    class Program

    {

        static void Main(string[] args)

        {

            var config = new HttpSelfHostConfiguration("http://localhost:8080");

 

            config.Routes.MapHttpRoute(

                "API Default", "api/{controller}/{id}",

                new { id = RouteParameter.Optional });

 

            using (HttpSelfHostServer server = new HttpSelfHostServer(config))

            {

                server.OpenAsync().Wait();

                 Console.WriteLine("Host The Application on Given URL");

                Console.ReadLine();

            }

        }

    }

}

 

Step 8

Execute the application. It will show a Console output screen for displaying a message.

Confermation Message of Hosting

Now copy the URL and paste it into the browser and change it to "http://localhost:8080/api/items".

The output will be as:

XML Output

Up Next
    Ebook Download
    View all
    Learn
    View all