Chapter 15. Serving RESTful APIs

Introduction

Exposing APIs using REST allows practically everyone to programmatically access your application. It doesn’t matter what language they’re using. Because REST embraces the basic protocol of the Web as its syntax, no special libraries are necessary. If a developer is capable of making HTTP requests, he can call your RESTful APIs.

REST does not prescribe a specific syntax for requests, the schema of the data passed back and forth, or even how to serialize data. Instead, it’s an architectural style that provides a set of patterns and general rules. Each site is then free to implement its APIs according to its needs, as long as it can follow the guidelines.

A resource is the fundamental unit of REST. Resources can be people, objects, or anything you wish to act upon. Resources are identified by location, using URLs. (Or by name, using a URN.)[6] Resources have representations, which are various ways to describe the resource. Usually the representations use standard data formats, such as JSON, XML, HTML, PDF, PNG, etc.

It’s a standard pattern to format URLs using /version/resource/key. For example, Rasmus Lerdorf could be located at http://api.example.com/v1/people/rasmus. This maps to a person identified as “rasmus” using version 1.0 of the API.

This resource can be represented in JSON as:

{
    "firstName": "Rasmus"
    "lastName": "Lerdorf"
}

In REST, the HTTP methods, such as GET and POST, describes the requested action. So, to process a RESTful request ...

Get PHP Cookbook, 3rd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.