Skip to main content
PaperadvancedFree

Architectural Styles and the Design of Network-based Software Architectures, Chapter 5: Representational State Transfer (REST)

by Roy T. Fielding · University of California, Irvine

The chapter of Roy Fielding's 2000 doctoral dissertation that defined REST. It builds up the style constraint by constraint (client-server, stateless, cache, uniform interface, layered system, code-on-demand) and defines resources, representations and connectors. The original source, and it settles what REST actually means, as opposed to 'JSON over HTTP'.

Visit resource

More resources on GraphQL & REST APIs

BookPaid

Production Ready GraphQL

The standard reference for GraphQL beyond the basics, and the natural next step after graphql.org/learn. A language-agnostic book on running GraphQL APIs in production. It covers schema design, schema evolution and deprecation, performance and N+1 problems, query cost and security limits, tooling and workflows, and GraphQL server architecture, plus a schema design checklist.

BookPaid

The Design of Web APIs, Second Edition

The best way in for someone new to the topic. A practical guide to designing web APIs around what their consumers need. It covers REST operations and resource identification, OpenAPI and JSON Schema documentation, access control and scopes, versioning without breaking changes, linting and governance, and how the ideas carry over to GraphQL and gRPC.

WebsiteFree

Google API Improvement Proposals (AIPs)

Google's public set of API design decisions, written as numbered proposals. Start with AIP-121 on resource-oriented design, then read the standard methods, pagination, field masks, long-running operations, errors and versioning. An API linter enforces the rules. This is the most rigorous public treatment of resource modelling, and it is the free primary source behind Geewax's book. Rated advanced because each proposal assumes you already know REST basics.

WebsiteFree

Zalando RESTful API and Event Guidelines

Zalando's open-source, production-tested rulebook for designing REST APIs. It covers resource naming and URLs, HTTP methods and idempotency, status codes, versioning and deprecation, OAuth2 scopes, cursor pagination, JSON formats and OpenAPI 3.1. It is the best free, practical answer to 'how should a REST API look' on versioning, auth and pagination.

WebsiteFree

Learn GraphQL (official guide)

The GraphQL Foundation's official guide. It covers schemas and types, queries, mutations, subscriptions, validation and execution, then moves on to best practices for authorization, pagination, caching, security, error handling, federation and schema governance. It has been expanded well beyond the basics and now includes 14 best-practice lessons and a schema-governance section, so it covers the whole topic note on the GraphQL side.

See all GraphQL & REST APIs resources →