RESTful logo

RESTful

Representational State Transfer (REST) is an architectural style for designing networked applications using stateless HTTP communication and uniform interfaces. RESTful describes systems and APIs that conform to the REST constraints: client-server separation, statelessness, cacheability, layered system, uniform interface, and (optionally) code-on-demand. This index covers the RESTful design paradigm including maturity models, API design patterns, documentation formats, and key reference implementations.

5 APIs 0 Features
ArchitectureHTTPWeb Services

APIs

Richardson Maturity Model

A model by Leonard Richardson that breaks down the maturity of a RESTful API into four levels: Level 0 (The Swamp of POX), Level 1 (Resources), Level 2 (HTTP Verbs), and Level 3...

JSON:API

A specification for building APIs in JSON that standardizes resource representation, relationships, error handling, and metadata. Reduces over-fetching and under-fetching with s...

HAL - Hypertext Application Language

A simple format for including hypermedia links in JSON or XML API responses. HAL uses _links for links and _embedded for embedded resources, providing a consistent way to make R...

OpenAPI Specification

The OpenAPI Specification (OAS) defines a standard, language-agnostic interface for HTTP APIs. OpenAPI 3.x is the most widely-used format for describing RESTful APIs, enabling d...

RFC 9110 - HTTP Semantics

The IETF standard defining HTTP semantics: methods, status codes, header fields, content negotiation, authentication, and request/response message formats. The authoritative ref...

Semantic Vocabularies

Restful Context

13 classes · 7 properties

JSON-LD

Resources

🔗
Roy Fielding REST Dissertation
Roy Fielding REST Dissertation
🟢
IANA HTTP Status Codes
IANA HTTP Status Codes
🔗
IANA Link Relations
IANA Link Relations
🔗
RFC 6570 URI Templates
RFC 6570 URI Templates

Sources

apis.yml Raw ↑
aid: restful
name: RESTful
description: >-
  Representational State Transfer (REST) is an architectural style for
  designing networked applications using stateless HTTP communication and
  uniform interfaces. RESTful describes systems and APIs that conform to the
  REST constraints: client-server separation, statelessness, cacheability,
  layered system, uniform interface, and (optionally) code-on-demand.
  This index covers the RESTful design paradigm including maturity models,
  API design patterns, documentation formats, and key reference implementations.
type: Index
url: https://raw.githubusercontent.com/api-evangelist/restful/refs/heads/main/apis.yml
tags:
  - Architecture
  - HTTP
  - Web Services
created: '2025-01-01'
modified: '2026-05-02'
specificationVersion: '0.19'
apis:
  - aid: restful:richardson-maturity-model
    name: Richardson Maturity Model
    description: >-
      A model by Leonard Richardson that breaks down the maturity of a RESTful
      API into four levels: Level 0 (The Swamp of POX), Level 1 (Resources),
      Level 2 (HTTP Verbs), and Level 3 (Hypermedia Controls / HATEOAS).
      Most modern APIs target Level 2.
    humanURL: https://martinfowler.com/articles/richardsonMaturityModel.html
    tags:
      - Best Practices
      - Design Patterns
      - Maturity Model
    properties:
      - type: Documentation
        url: https://martinfowler.com/articles/richardsonMaturityModel.html

  - aid: restful:json-api
    name: JSON:API
    description: >-
      A specification for building APIs in JSON that standardizes resource
      representation, relationships, error handling, and metadata. Reduces
      over-fetching and under-fetching with sparse fieldsets and compound
      documents.
    humanURL: https://jsonapi.org/
    tags:
      - Hypermedia
      - JSON
      - Standards
    properties:
      - type: Documentation
        url: https://jsonapi.org/format/
      - type: Website
        url: https://jsonapi.org/

  - aid: restful:hal-specification
    name: HAL - Hypertext Application Language
    description: >-
      A simple format for including hypermedia links in JSON or XML API
      responses. HAL uses _links for links and _embedded for embedded
      resources, providing a consistent way to make REST APIs navigable.
    humanURL: https://stateless.co/hal_specification.html
    tags:
      - Hypermedia
      - JSON
      - Standards
    properties:
      - type: Documentation
        url: https://stateless.co/hal_specification.html
      - type: IETF Draft
        url: https://datatracker.ietf.org/doc/html/draft-kelly-json-hal

  - aid: restful:openapi-specification
    name: OpenAPI Specification
    description: >-
      The OpenAPI Specification (OAS) defines a standard, language-agnostic
      interface for HTTP APIs. OpenAPI 3.x is the most widely-used format for
      describing RESTful APIs, enabling documentation, code generation, and
      validation.
    humanURL: https://spec.openapis.org/oas/latest.html
    tags:
      - Documentation
      - Standards
      - Tooling
    properties:
      - type: Specification
        url: https://spec.openapis.org/oas/latest.html
      - type: Website
        url: https://www.openapis.org/

  - aid: restful:http-rfc-9110
    name: RFC 9110 - HTTP Semantics
    description: >-
      The IETF standard defining HTTP semantics: methods, status codes, header
      fields, content negotiation, authentication, and request/response
      message formats. The authoritative reference for RESTful HTTP API design.
    humanURL: https://datatracker.ietf.org/doc/html/rfc9110
    tags:
      - HTTP
      - RFC
      - Standards
    properties:
      - type: Standard
        url: https://datatracker.ietf.org/doc/html/rfc9110

common:
  - type: Roy Fielding REST Dissertation
    url: https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
  - type: IANA HTTP Status Codes
    url: https://www.iana.org/assignments/http-status-codes/
  - type: IANA Link Relations
    url: https://www.iana.org/assignments/link-relations/
  - type: RFC 6570 URI Templates
    url: https://datatracker.ietf.org/doc/html/rfc6570
maintainers:
  - FN: Kin Lane
    email: [email protected]