aryaxt
aryaxt

Reputation: 77626

.Net & WCF - How to create REST instead of SOAP?

I created a couple of services, but they are all running as soap web services and return soap messages.

1- How can I make my wcf project to be restful instead of soap?

2- How can i make all services to return and expect json instead of xml?

Upvotes: 3

Views: 1043

Answers (3)

krisragh MSFT
krisragh MSFT

Reputation: 1918

There is an excellent section in the MSDN docs devoted to a detailed analysis of how to "JSON-enable" your WCF services. I recommend it as a starting point.

But before you read that, I recommend skimming through the section on the WCF Web Http Programming Model, since it builds up some foundational concepts that would be useful in understanding the JSON-enablement / AJAX-enablement topics of WCF described later.

Hope this helps!

Upvotes: 1

Codo
Codo

Reputation: 78985

Another example of a WCF REST/Json service and client can be found in my answer to the question "Client configuration to consume WCF JSON web service".

Upvotes: 1

marc_s
marc_s

Reputation: 755297

You need to do at least two things:

  • decorate your operation contracts (the service methods) with a WebGet or WebInvoke attribtue and define a URI template

  • define a service endpoint that uses the webHttpBinding and a specific webHttp endpoint behavior

Other than that - you really don't need to do anything to get your REST service up and running.

Mind you: this is just "exposing" your current SOAP methods as REST - this is not the "proper" REST style of programming. To do that, you'd have to design your service from the beginning to be RESTful.

SOAP typically uses messages and methods - stuff like GetCustomer, GetBalance and so forth.

REST on the other hand thinks in resources - you have a Customer resource, and issuing an HTTP GET on that resource URI retrieves the customer, a PUT would insert a new customer, POST would update an existing customer, and DELETE (all HTTP verbs) will delete your customer. So in proper REST, you're not thinking in methods and procedures - you're thinking about how to expose resources and make those available to the consumer of your service.

Upvotes: 5

Related Questions