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".
- 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.
- 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".
- 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.
Now copy the URL and paste it into the browser and change it to "http://localhost:8080/api/items".
The output will be as: