A collaborative list of great resources about RESTful API architecture, development, test, and performance. Feel free to contribute to this on-going list.
- HTTP API design guide extracted from work on the Heroku Platform API
- Best Practices for Designing a Pragmatic RESTful API
- How to design a REST API? - a full guide tackling security, pagination, filtering, versioning, partial answers, CORS, etc.
- Enterprise Integration Using REST by the famous Martin Fowler
- HATEOAS - a clear explanation on what HATEOAS is, and why you should use it.
- How to GET a cup of coffee
- JSON API - a standard for building APIs in JSON
- RAML - a simple and succinct way to describe RESTful API
- JSend - a simple specification that lays down some rules for how JSON responses from web servers should be formatted
- OData - an open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs. Quite complex.
- HAL - a simple format that gives a consistent and easy way to hyperlink between resources in your API (see: HATEOAS).
- JSON-LD - a standard to describe Linked Data and hypermedia relations in JSON (W3C)
- Hydra - a vocabulary for Hypermedia-Driven Web APIs (W3C)
- Schema.org - a collection of schemas describing common data models
- Guzzle - HTTP client and framework for consuming RESTful web services
- Buzz - another lightweight HTTP client
- unirest for PHP - Simplified, lightweight HTTP client library
- restangular - AngularJS service to handle REST API properly and easily
- restful.js - a JS client for interacting with server-side RESTful resources
- restler - REST client library for node.js
- unirest for Node.js - Simplified, lightweight HTTP client library
- RESTClient - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
- Spyke - Interact with REST services in an ActiveRecord-like manner.
- excon - Usable, fast, simple Ruby HTTP 1.1. It works great as a general HTTP(s) client and is particularly well suited to usage in API clients.
- gopencils - Small and simple package to easily consume REST APIs.
- postgrest - serve a fully RESTful API directly from an existing PostgreSQL database
- MySQL HTTP plugin - A simple REST-like / CRUD server for any MySQL database
- node-restify - a framework specifically meant for REST API
- Sails.js - a Node.js Web framework embedding a command to generate automatically a REST API
- mers - an Express service to expose Mongoose finders as RESTful API
- Baucis - build scalable REST API based on your Mongoose entities
- flatiron/resourceful - an isomorphic Resource engine for JavaScript
- loopback - powerful Node.js framework for creating APIs and easily connecting to backend data sources
- Microrest - a micro-web application providing a REST API on top of any relational database
- Negotiation - A content negotiation library.
- Drest - A library for exposing Doctrine entities as REST resource endpoints.
- Restler - A lightweight framework to expose PHP methods as RESTful web API.
- HAL - A Hypertext Application Language (HAL) builder library.
- Apigility - An API builder built with Zend Framework 2.
- phprest - specialized REST microframework for PHP
- Hateoas - a PHP library to support implementing representations for HATEOAS REST web services
- PHP Schema - a generator of PHP data model using schemas from Schema.org
- REST APIs with Symfony2: the Right Way - a complete guide to build a state-of-the-art REST API with Symfony2 framework
- FOSRestBundle - bundle handling view, routing, error handling, etc. for your REST API
- stanlemon/rest-bundle - build a REST API based on Doctrine entities using conventions over configuration
- lakion/Lionframe - a glu between several community libraries to ease API development
- BazingaHateoasBundle - integrate the Hateoas library into a Symfony2 application
- Symfony REST Edition - start with a Symfony2 application with all REST-friendly bundles pre-configured
- NgAdminGeneratorBundle - boostrap ng-admin configuration based on
stanlemon/rest-bundle
- DunglasApiBundle - build a REST API which follow Hydra/JSON-LD specification
- API Platform - a Symfony edition specialized in the creation of hypermedia REST APIs
- django-tastypie - Creating delicious APIs for Django apps.
- flask-restful - An extension for Flask that adds support for quickly building REST APIs.
- flask-restless - A Flask extension for generating ReSTful APIs for database models defined with SQLAlchemy (or Flask-SQLAlchemy).
- sandman - Automated REST APIs for existing database-driven systems.
- restless - Framework agnostic REST framework based on lessons learned from TastyPie.
- savory-pie - REST API building library (django, and others)
- Grape - An opinionated micro-framework for creating REST-like APIs in Ruby.
- go-json-rest - a thin layer on top of
net/http
that helps building RESTufmigl API easily - sleepy - a RESTful micro-framework written in Go
- restit - A Go micro framework to help writing RESTful API integration test
- go-relax - A framework of pluggable components to build RESTful API's
- go-rest - A small and evil REST framework for Go
- Goat - A minimalistic REST API server in Go
- Resoursea - A REST framework for quickly writing resource based services.
- Zerver - Zerver is a expressive, modular, feature completed RESTful framework.
- httpie - a command line HTTP client, far more dev-friendly than
curl
- Postman REST Client - a Chrome extension essential to test manually REST API
- resty - little command line REST client that you can use in pipelines (bash or zsh)
- jq - command line JSON processor, to use in combination with a command-line HTTP client like cURL
- FakeRest - patch XMLHttpRequest to fake a REST API client-side
- json-server - serve a REST API from fixture files using quick prototyping
- Public APIS - Explore The Largest API Directory In The Galaxy
- Marvel Comics API - query characters, stories, events about Marvel superheroes
- JSON Placeholder - a free online REST service that you can use whenever you need some fake data.
- Swagger - Documentation/querying web interface for REST APIs
- API doc - Inline Documentation for RESTful web APIs
- Runscope - Automated API Monitoring & Testing
- import.io Magic - Create a REST API from any website in one click
- Apiary - Collaborative design, instant API mock, generated documentation, integrated code samples, debugging and automated testing.
- ng-admin - add an AngularJS admin GUI to any RESTful API