Even though its a pretty old topic, thought this post would be helpful for newbie's.
Here, I created a WCF Service Application (Name: WcfService1)
Deleted the svc created by default and created my own WCF Service (Name: MyRestService)
In the interface IMyRestService add the below code
[ServiceContract]
public interface IMyRestService
{
[OperationContract]
void DoWork();
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "GetProductList/")]
List<Product> GetProductList();
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "GetName/")]
string GetName();
}
in the .svc implemented the below:
public class MyRestService : IMyRestService
{
public void DoWork()
{
}
public List<Product> GetProductList()
{
//Product is a class which I used to load product details from repository
Product p = new Product();
return p.GetProducts();
}
public string GetName()
{
return "Hello World";
}
}
Solution structure is
In the web.config do the below settings
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBehavior">
<serviceMetadata httpGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service name="WcfService1.MyRestService" behaviorConfiguration="serviceBehavior">
<endpoint address=""
binding="webHttpBinding"
contract="WcfService1.IMyRestService"
behaviorConfiguration="web"></endpoint>
</service>
</services>
</system.serviceModel>
Now you can test the methods using the urls:
1) http://localhost:63337/MyRestService.svc/GetName/
2) http://localhost:63337/MyRestService.svc/GetProductList/
Here, I created a WCF Service Application (Name: WcfService1)
Deleted the svc created by default and created my own WCF Service (Name: MyRestService)
In the interface IMyRestService add the below code
[ServiceContract]
public interface IMyRestService
{
[OperationContract]
void DoWork();
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "GetProductList/")]
List<Product> GetProductList();
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "GetName/")]
string GetName();
}
in the .svc implemented the below:
public class MyRestService : IMyRestService
{
public void DoWork()
{
}
public List<Product> GetProductList()
{
//Product is a class which I used to load product details from repository
Product p = new Product();
return p.GetProducts();
}
public string GetName()
{
return "Hello World";
}
}
Solution structure is
In the web.config do the below settings
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBehavior">
<serviceMetadata httpGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service name="WcfService1.MyRestService" behaviorConfiguration="serviceBehavior">
<endpoint address=""
binding="webHttpBinding"
contract="WcfService1.IMyRestService"
behaviorConfiguration="web"></endpoint>
</service>
</services>
</system.serviceModel>
Now you can test the methods using the urls:
1) http://localhost:63337/MyRestService.svc/GetName/
2) http://localhost:63337/MyRestService.svc/GetProductList/
No comments:
Post a Comment