Excellent 1 Page Introduction to REST


Building Web Services the REST Way

Roger L. Costello


REST Web Services Characteristics

Here are the characteristics of REST:

  • Client-Server: a pull-based interaction style: consuming components pull representations.
  • Stateless: each request from client to server must contain all the information necessary to understand the request, and cannot take advantage of any stored context on the server.
  • Cache: to improve network efficiency responses must be capable of being labeled as cacheable or non-cacheable.
  • Uniform interface: all resources are accessed with a generic interface (e.g., HTTP GET, POST, PUT, DELETE).
  • Named resources – the system is comprised of resources which are named using a URL.
  • Interconnected resource representations – the representations of the resources are interconnected using URLs, thereby enabling a client to progress from one state to another.
  • Layered components – intermediaries, such as proxy servers, cache servers, gateways, etc, can be inserted between clients and resources to support performance, security, etc.

Principles of REST Web Service Design

1. The key to creating Web Services in a REST network (i.e., the Web) is to identify all of the conceptual entities that you wish to expose as services. Above we saw some examples of resources: parts list, detailed part data, purchase order.

2. Create a URL to each resource. The resources should be nouns, not verbs. For example, do not use this:


Note the verb, getPart. Instead, use a noun:


3. Categorize your resources according to whether clients can just receive a representation of the resource, or whether clients can modify (add to) the resource. For the former, make those resources accessible using an HTTP GET. For the later, make those resources accessible using HTTP POST, PUT, and/or DELETE.

4. All resources accessible via HTTP GET should be side-effect free. That is, the resource should just return a representation of the resource. Invoking the resource should not result in modifying the resource.

5. No man/woman is an island. Likewise, no representation should be an island. In other words, put hyperlinks within resource representations to enable clients to drill down for more information, and/or to obtain related information.

6. Design to reveal data gradually. Don’t reveal everything in a single response document. Provide hyperlinks to obtain more details.

7. Specify the format of response data using a schema (DTD, W3C Schema, RelaxNG, or Schematron). For those services that require a POST or PUT to it, also provide a schema to specify the format of the response.

8. Describe how your services are to be invoked using either a WSDL document, or simply an HTML document.

Via http://www.xfront.com/REST-Web-Services.html


YouTube Data API – Google Code


What is the YouTube Data API?

The YouTube Data API offers a simple and powerful way to access YouTube’s content in the form of Google Data API feeds. Your client application can request a list of videos that match specific search criteria, get access to the most popular YouTube videos, or get public information about YouTube users (such as playlists, subscriptions, or contacts).

The YouTube Data API is based on the Atom 1.0 and RSS 2.0 syndication formats and the Atom Publishing Protocol. Learn more about Google Data APIs.

How do I start?

If you’re new to the YouTube Data API, here’s how we recommend you get started:

  1. Get familiar with the GData Google Data APIs.
  2. Read the YouTube Data API Developer’s Guide.
  3. Refer to the YouTube Data API Reference Guide as needed.
  4. YouTube Data API – Google Code Home Page


  1. Client Libraries 
  2. Sample Code
  3. Batch Processing allows you to execute multiple operations in 1 request.
  4. Authentication – Desktop/Web (ClientLogin/AuthSub) 


.NET GData Client Library Developer’s Guide

This document provides a set of examples of common uses of the C# version of the client library, followed by other information about writing GData clients. At the end of this document is a link to the reference documentation for the C# client library, in NDoc format. Nothing YouTube Specific inside.

 .NET GData Sample

These samples can be found in the downloadable .NET client library package. For more information, see the .NET client library developer’s guide, or download the .NET client library from google code.

GUI application to edit a Blogger feed.
GUI application to browse a calendar.
GUI application to query Google Code Search.
Command line clients for querying and manipulating a Google Base feed.
Simple client that inserts a hardwired entry into a calendar.
Simple client that pulls data from a calendar.
GUI aplication to manipulate a spreadsheet.
Simple client that modifies some entries in a calendar.


Google Data APIs Protocol Basics