Monday, March 22, 2010

Calling WCF Restful Services in Jquery

Create WCF 2010 Restful Services



Visual studio 2010 produce some online template so we can download this template and use from this online template we can get WCF REST Service Template 40(CS)

Just go to New Project - Online Templates - get WCF REST Service Template 40(CS) from this we can download restful service template. Once we download it will come under WCF directory.



Solutions look like this.







In this service1 class contain default methods some methods contain WebGet and WebInvoke. If we use WebGet work methods as get if we use WebInvoke we can specify methods as PUT, POST, DELETE depending on the situation we can use either WebGet or WebInvoke.



I wrote methods to return list of student details. Here UriTemplate is the URL for access this methods and response methods as JSON because I need to call this methods in Jquery so I use JSON format. Body style is not mandatory

<pre class="brush:html">

[WebGet(UriTemplate = "StudentsJSON",BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]

Public List<Student> GetStudentCollectionJSON()

{

return new Student().getStudent();



}



Main advantage of this REST in 4.0 is we can give unique URL for each method and in WCF there is no .SVC extension. Microsoft has removed this SVC extension.



From below URL we can see all the methods here there is no .svc extension

http://localhost/Test/TestService/help









Calling WCF Restful Services in Jquery



Before discuss about calling WCF Restful Services through Jquery we need to understand what is REST? Why we need to use restful services? When Microsoft introduces this REST and Restful services? Why we need to away from ASMX, WCF using SOAP base protocols? So here I am not going to explain the theory we can get to know by googling.



If we navigate through the methods “GET” we will get XML, JSON format default data







If we use http://localhost/Test/TestService/StudentsXML link we will get XML format data









[WebGet(UriTemplate = "StudentsXML" , ResponseFormat = WebMessageFormat.Xml)]

public List<Student> GetStudentCollectionXML()

{

return new Student().getStudent();

}

Using http://localhost/Test/TestService/StudentsJSON link we will get JSON format data





[WebGet(UriTemplate = "StudentsXML" , ResponseFormat = WebMessageFormat.Xml)]



public List<Student> GetStudentCollectionXML()

{

return new Student().getStudent();



}



//Pirasanth

No comments:

Post a Comment

Amma Bhagavan's Songs