Chapter 3. Programming Read-Only Services

Many RESTful services are designed only to return read-only data and implement GET from the uniform interface for all or a majority of their resources. GET is by far the most commonly used verb in the uniform interface.

In this chapter, we’ll look at how to create this type of service using the constraints of REST using WCF as the implementation. By using the WebGetAttribute and the URI customization of UriTemplate, we will build up a simple but fairly deep set of resources. We will also examine serialization options in WCF and how they relate to RESTful services. We will continue to use the biological taxonomy example from Chapter 2, since it has a rich hierarchy that shows off the power of the UriTemplate system. Chapter 4 will focus on read/write services.

Using WebGetAttribute and UriTemplate

The process of building resources that expose themselves through HTTP GET using WCF is fairly straightforward. You build up a service contract definition using the normal WCF constructs of ServiceContractAttribute and OperationContextAttribute. If you are used to building SOAP-based services with WCF you might be used to customizing these attributes by changing their properties. Although you can do this when building a RESTful service using WCF, doing so won’t help you when using REST.

In addition to these existing attributes, WCF 3.5 adds the WebGetAttribute for building read-only RESTful endpoints. This attribute is added to each CLR method on a ...

Get RESTful .NET now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.