REST stands for
Representational
State
Transfer.
SOAP stands for Simple Object Access Protocol.
Only main difference is that How Client accesses our Service.
Normal WCF service runs on the SOAP format but when we create REST
service then client can access your service in different architecture
style like JSON.
REST uses4 HTTP methods to insert/delete/update/retrieve information which is below:
GET - Retrive a specific representation of a resource
PUT - Creates or updates a resource with the supplied representation
DELETE - Deletes the specified resource
POST - Submits data to be processed by the identified resource
WCF
1. It is also based on SOAP and return data in XML form.
2. It is the evolution of the web service(ASMX) and support various protocols like 3. TCP, HTTP,
HTTPS, Named Pipes, MSMQ.
4. The main issue with WCF is, its tedious and extensive configuration.
5. It is not open source but can be consumed by any client that understands xml.
6. It can be hosted with in the applicaion or on IIS or using window service.
WCF Rest
1. To use WCF as WCF Rest service you have to enable webHttpBindings.
2. It support HTTP GET and POST verbs by [WebGet] and [WebInvoke] attributes respectively.
3. To enable other HTTP verbs you have to do some configuration in IIS to accept request of that
particular verb on .svc files
4. Passing data through parameters using a WebGet needs configuration. The UriTemplate must be
specified
5. It support XML, JSON and ATOM data format.
Web Service is an abstract term encompassing a large variety of data
providers for distributed systems. Perhaps you are referring to ASMX web
services, which can still be found in the wild but aren't really widely
used in new development these days.
WCF Service is Microsoft's
implementation of SOAP. There are others implementations or you could
roll your own (not recommended).
SOAP is a kind of stateful,
session-based, message-based web service. It's good if your service is
designed as a set of complex actions.
REST is a stateless,
sessionless, resource-based web service. It's good if your service is
designed to access data and perform simple CRUD operations on it. SOAP
and REST are mutually exclusive. A service cannot be both. There are
ways to manipulate vanilla WCF to make is RESTful but these techniques
are becoming deprecated. If you want to implement a RESTful web service
there are two main choices in the Microsoft world: WCF Data Services and
ASP.NET Web API..
SOAP
Without getting too deep into its history, Simple Object Access
Protocol (SOAP) is a Microsoft invented protocol that was meant to
create a structured way of sending and receiving data over the wire.
This protocol is one of the main foundations of WCF and utilizes XML to
create services with typed data and methods. In the typical scenario, a
Web Services Description Language (WSDL) file is created from service
code and is provided, usually through a static URL, to the client. The
client uses this WSDL file to understand what methods are available on
the service, how to call them, and what the classes of the returned
objects will be. This is a very
action-driven model that focuses on what actions a service is a capable of performing.
REST
REpresentational State Transfer (REST) is not a protocol, but an
architecture and design pattern for building and calling web services.
This is the pattern that Web API was designed to utilize to build web
services. It is a very
resource-driven architecture
that exposes endpoints based on objects and not functions. RESTful
services also make use of the standard HTTP methods and constructs to
exchange data; using GET, POST, PUT, DELETE, and sometimes PATCH a
caller can denote which action to perform on the object being accessed
at the requested endpoint. Query parameters and content in the body of
the request can also provide ways to pass parameters to the service.