Objective
This article will give a step by step visual explanation of how to create a REST enabled WCF service.
Background
I have written before also REST enabled service. I was success to create REST service but now I realized that was the bit complex way. To have an understanding of REST service read my other articles.
Step 1 Create an empty web site. To do this, File -> New -> Web Site.

Step 2
Right click on the project in solution and add WCF Service as new item. Give any name to the service. I am giving Search.svc.

Step 3
We are going to create a very simple service. This service will return a string.
Search.svc
public string DoWork(string Name )
{
return "HI , " + Name + " Welcome to simplest REST Service";
}
public string GetGreetingAsFunction(string Name)
{
return "HI , " + Name + " Welcome to simplest REST Service";
}
Constructing URI to invoke the service
[OperationContract]
[WebGet(UriTemplate="/Search?name={name}",BodyStyle=WebMessageBodyStyle.Bare)]
string GetGreeting(string name);The above function will get call by URL
http://localhost:61131/MyRestService/Search.svc/Search?Name=Dhananjay
[OperationContract]
[WebGet]
string GetGreetingAsFunction(string name);
The above function will get call by URL
http://localhost:61131/MyRestService/Search.svc/GetGreetingAsFunction?Name=Dhananjay
In this case , we have not constructed any URI so , we will call by calling the function name directly and passing the parameter appended with ? mark.
So , contract could be consolidted as
ISearch.cs
[ServiceContract]
public interface ISearch
{
[OperationContract]
[WebGet(UriTemplate = "/Search?name={name}", BodyStyle = WebMessageBodyStyle.Bare)]
string GetGreeting(string name);
[OperationContract]
[WebGet]
string GetGreetingAsFunction(string name);
}
Few Points to be noted
- Add namespace System.ServiceModel.Web
- There are two methods WebGet and WebInvoke is available
- WebGet is for HTTP Get operation
- WebInvoke is for otherHTTP operations.
- Make sure in braces the parameter is same as parameter of the function. In this case it is name
- GetGreetingAsFunction (string name) will be called by giving function name in the URI
- The above service will be available at URI
Step 4
Modifying the Config file to make service as REST enabled service
Create the End Point Behavior, add the below End Point behavior inside
tag.
Modify the End Point setting. Give WebHttpBinding as binding. And provide behavior we created above as behavior name.
<endpoint address="" binding="webHttpBinding" contract="ISearch" behaviorConfiguration="REST">
After putting all together Web.Config wil look like
Web.Config
Step 5: Run the application

Below URL are used to call the service in browser.
http://localhost:61131/MyRestService/Search.svc/Search?Name=Dhananjay
http://localhost:61131/MyRestService/Search.svc/GetGreetingAsFunction?Name=Dhananjay

Conclusion
In this article, I explained basic of REST service. Thanks for reading.