Foreword
Preface
1. REST Basics
Architecture of the World Wide Web
SOAP
REST
Resources and URIs
Uniform Interface
Resource Representations
Implementing a Simple RESTful Service Example
Resources
URIs and Uniform Interface
Representations
Interaction
Wrap-Up
Processes
Summary
2. WCF RESTful Programming Model
Isnt WCF All About SOAP?
Channels and Dispatching
HTTP Programming with WCF 3.0
Web Programming in WCF 3.5
WebHttpBinding
WebHttpBehavior
WebServiceHost
WebOperationContext
WebGetAttribute
UriTemplate
UriTemplate Literal Values
UriTemplate Special Values
UriTemplate QueryString
Summary
3. Pr0gramming Read-0nly Services
Using WebGetAttribute and UriTemplate
Data Formats
Message
DataContract
XmlSerializer
Hybrid Approach
Summary
4. Programming Read/Write Services
POST, PUT, and DELETE
Using WeblnvokeAttribute
Resources
URIs and Uniform Interface
Representations
Implementation
Summary
5. Hosting WCF RESTful Services
WCF REST Hosting Isnt a Special Case
Self-Hosting
Configuring, Opening, and Closing a ServiceHost
Base Addresses
ServiceHost Versus WebServiceHost
Custom ServiceHost
Hosting in IIS
ASP.NET Compatibility
Multiple Hosmames
Removing the .svc File Extension
Custom ServiceHostFactory
Hosting Wrap-Up
Summary
6. Programming Feeds
Building a Feed with WCF
SyndicationItem
Formatters
Exposing a Feed on a Live URI
Feed Validation
Adding Links to a Feed
Summary
7. Programming Ajax and Silverlight Clients
WCF Web Services and Ajax
JSON
JSON-Enabling a Service Endpoint
ASP.NET Ajax
Silverlight 1.0
Silverlight 2.0
Parsing XML in Silverlight 2.0
Parsing JSON in Silverlight 2.0
Consuming Feeds in Silverlight 2.0
Cross-Domain Security in Silverlight 2.0
Returning JSON and XML Conditionally with a Single Method
Summary
8. Securing REST Endpoints
Authenticating: Self-Hosted Endpoints
Setting Endpoint Security: WebHttpBinding.Securitys Mode Property
Setting Authentication Requirements: WebHttpBindings Transport
Property
Authenticating: Managed Hosting Endpoints
Authorizing Endpoints
Authorization with Impersonation
Role-Based Authorization
Summary
9. Using Workflow to Deliver REST Services
Consuming REST Services from WF
The SendActivity Instance
The ReceiveActivity Instance
Stateless Workflow Services
Stateful Workflow Services
Summary
10. Consuming RESTful XML Services Using WCF
Defining the Client
Generating the Contract
Creating the Resource Representations
Creating the ServiceContract
Using the Service
Client Extensibility
Summary
11. Working with HTTP
Programming HTTP with WCF
IncomingWebRequestContext
OutgoingWebResponseContext
OutgoingWebRequestContext
IncomingWebResponseContext
Context Wrap-Up
Status Codes
201 —— Created
404 —— Not Found
Conditional GET
LastModified
ETags
Caching
Output Caching
HttpContext.Cache
Content-Type
Summary
A. WCF 3.5 SP1
B. ADO.NETData Services.
C. ADO.NET Entity Framework Walkthrough
Index