awesome-rest
by marmelab
A collaborative list of great resources about RESTful API architecture, development, test, and performance
AI summary
API guide
A curated list of resources and guidelines for designing, developing, testing, and optimizing RESTful APIs.
- stars
- 3.7K
- forks
- 403
- watching
- 148
- awesome lists
- 8
- entries
- 172
What's in the list
172 links in 28 sections, with live GitHub stats.activeno commit in 2y
Design
- Architectural Styles and the Design of Network-based Software Architectures
Roy Fielding's dissertation defining REST
- How to design a REST API?
Full guide tackling security, pagination, filtering, versioning, partial answers, CORS, etc
- Richardson Maturity Model
Explained by Martin Fowler, originally presented by Leonard Richardson at the
- Enterprise Integration Using REST
Discusses the constraints and flexibility that you have with nonpublic APIs, and lessons learned from doing large scale RESTful integration across multiple teams
- HATEOAS
Clear explanation on what HATEOAS is, and why you should use it
- REST API Tutorial
RestApiTutorial.com is dedicated to tracking REST API best practices and making resources available to enable quick reference and self education for the development crafts-person
API-Security-Checklist
Best practices about REST API security
Design / Guidelines
Adidas REST API Guidelines
Adidas REST API Guidelines define standards and guidelines for building REST APIs at adidas
- Atlassian REST API design guidelines version 1
This document provides guidelines to Atlassian developers who are designing REST APIs for Atlassian applications
Cisco REST API Guide
Guidelines for designing REST APIs at Cisco
- Google Cloud API design guide
Guidelines Google follows when designing Cloud APIs and other Google APIs (REST APIs and gRPC APIs)
Haufe API Style Guide
Guidelines created by Haufe-Lexware CTO team
Microsoft REST API Guidelines
The Microsoft REST API Guidelines, as a design principle, encourages application developers to have resources accessible to them via a RESTful HTTP interface
Restful API Guidelines by Zalando
Developing Restful APIs: A Comprehensive Set of Guidelines
Standards
- JSON API
Standard for building APIs in JSON
- RAML
Simple and succinct way to describe RESTful API
JSend
Simple specification that lays down some rules for how JSON responses from web servers should be formatted
- OData
Open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs. Quite complex
- HAL
Simple format that gives a consistent and easy way to hyperlink between resources in your API
- JSON-LD
Standard for describing Linked Data and hypermedia relations in JSON (W3C)
- Hydra
Vocabulary for Hypermedia-Driven Web APIs (W3C)
- Schema.org
Collection of schemas describing common data models
- OpenAPI
Formerly known as the Swagger Specification, OpenAPI specifcation is the world’s most popular description format for defining Restful APIs
Clients / PHP Clients
- Guzzle
HTTP client and framework for consuming RESTful web services
Buzz
Another lightweight HTTP client
unirest for PHP
Simplified, lightweight HTTP client library
Clients / JavaScript Clients
restangular
AngularJS service to handle REST API properly and easily
restful.js
JS client for interacting with server-side RESTful resources
traverson
A Hypermedia API/HATEOAS Client for Node.js and the Browser
raml-client-generator
Generates static client libs for js
Clients / Node.js Clients
restler
REST client library for node.js
unirest for Node.js
Simplified, lightweight HTTP client library
Clients / Ruby Clients
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
httparty
Makes HTTP fun again!
- Net::HTTP
Net::HTTP provides a rich library which can be used to build HTTP user-agents
raml-ruby-client-generator
Auto generate API client from a RAML file
Clients / Go Clients
Clients / .NET Clients
RestSharp
Simple REST and HTTP API client for .NET
Refit
The automatic type-safe REST library for Xamarin and .NET
- Flurl
Fluent, portable, testable REST/HTTP client library
RestEase
Easy-to-use typesafe REST API client library, which is simple and customisable. Heavily inspired by Refit
Tiny.RestClient
Simpliest Fluent REST client for .NET
RestLess
The automatic type-safe-reflectionless REST API client library for .Net Standard
Apizr
Refit-based web api client, but resilient (retry, connectivity, cache, auth, log, priority, etc...)
Clients / Generators
openapi-generator
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
Servers / Directly On Top Of A RMDB
postgrest
Serve a fully RESTful API directly from an existing PostgreSQL database
- MySQL HTTP plugin
Simple REST-like / CRUD server for any MySQL database
pREST
A fully RESTful API from any existing PostgreSQL database written in Go
Servers / Node.js
node-restify
Framework specifically meant for REST API
- Sails.js
Node.js Web framework embedding a command to generate automatically a REST API
mers
Express service exposing Mongoose finders as RESTful API
- Baucis
Build scalable REST API based on your Mongoose entities
flatiron/resourceful
Isomorphic Resource engine for JavaScript
- loopback
Powerful Node.js framework for creating APIs and easily connecting to backend data sources
- Feathers
is a real-time, micro-service web framework that gives you control over your data via RESTful resources, sockets and flexible plug-ins
Expressa
Express middleware for creating APIs from JSON schemas with a simple admin editor and permissions model
rest-hapi
Generate RESTful API based on mongoose models that supports relational data
Nestjsx/crud
Generate CRUD controllers and services for RESTful API with NestJS and TypeORM
Servers / PHP
Microrest
Micro-web application providing a REST API on top of any relational database
Negotiation
Content negotiation library
Drest
Library for exposing Doctrine entities as REST resource endpoints
Restler
Lightweight framework to expose PHP methods as RESTful web API
HAL
Hypertext Application Language (HAL) builder library
Apigility
API builder built with Zend Framework 2
phprest
Specialized REST microframework for PHP
Hateoas
PHP library to support implementing representations for HATEOAS REST web services
Fusio
Open source API management platform
- REST APIs with Symfony2: the Right Way
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
Glu between several community libraries to ease API development
BazingaHateoasBundle
Integrate the 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
DunglasApiBundle
Build a REST API which follow Hydra/JSON-LD specification
API Platform
Specialize Symfony edition for the creation of hypermedia REST APIs
NelmioApiDocBundle
Generate documentation for your REST API from annotations
Servers / PowerShell
Pode
Pode is an cross-platform, open-source, community-supported web server and REST API framework for PowerShell developers
Servers / Python
- Django REST framework
Powerful and flexible toolkit that makes it easy to build Web APIs
- django-tastypie
Creating delicious APIs for Django apps
- flask-restful
Extension for Flask that adds support for quickly building REST APIs
- flask-restless
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
- Python Eve
Eve is an open source Python REST API framework designed for human beings. It allows to effortlessly build and deploy highly customizable, fully featured RESTful Web Services
- Ramses
Makes RAML files executable by generating production-ready APIs from them at runtime
Flask-Potion
Flask-Potion is a powerful Flask extension for building RESTful JSON APIs. It also provides several Clients for easier access to the API
apistar
A smart Web API framework, designed for Python 3
Falcon
Falcon is a bare-metal Python web API framework for building high-performance microservices, app backends, and higher-level frameworks
FastAPI
FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. With automatic API documentation using Swagger UI and ReDoc, based on OpenAPI and JSON Schema
Servers / Ruby
Servers / Go
gocrud
: Go library to simplify creating, updating and deleting arbitrary depth structured data — to make building REST services fast and easy
go-json-rest
Thin layer on top of that helps building RESTful APIs easily
sleepy
RESTful micro-framework written in Go
restit
Go micro framework to help writing RESTful API integration test
go-relax
Framework of pluggable components to build RESTful API's
go-rest
Small and evil REST framework for Go
go-restful
A declarative highly readable framework for building restful API's
Goat
Minimalistic REST API server in Go
Resoursea
REST framework for quickly writing resource based services
Servers / Java
RestExpress
Netty-based, highly performant, lightweight, container-less, plugin-extensible, framework that is ideal for microservice architectures
Vertx-Web
Vert.x-Web is a set of building blocks for building web applications with Vert.x, a toolkit for building reactive applications on the JVM
Dropwizard
A framework for developing ops-friendly, high-performance, RESTful web services
Servers / Scala
Chaos
A lightweight framework for writing REST services in Scala
Servers / Haskell
Rest for Haskell
This package allows you to create REST APIs in Haskell. These APIs can be run in different web frameworks. They can also be used to automatically generate documentation as well as client libraries
Testing / Querying
httpie
Command line HTTP client, far more dev-friendly than
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
- HttpMaster
GUI tool for testing REST APIs and services. Windows OS only
Http-console
Command line interface for HTTP that let you
HTTP Prompt
HTTP Prompt is an interactive command-line HTTP client featuring autocomplete and syntax highlighting, built on HTTPie and prompt_toolkit
rest-assured
Java DSL for easy testing of REST services
Insomnia
Cross-platform HTTP and GraphQL Client
- ExtendsClass
Make HTTP requests with a simple web-based HTTP client
- TestMace
Cross-platform simple but powerful IDE for API automation testing
Milkman
Extensible cross-platform request/response workbench, not only for http calls
Schemathesis
Property-based testing tool for web applications built with Open API and GraphQL specifications
Step CI
Open-source framework for API Quality Assurance, which tests REST, GraphQL and gRPC automated and from Open API spec
RestQA
A REST API testing Framework based on BDD / Gherkin to manage microservice local testing
Testing / Mocking
- RequestBin
Inspect and debug webhook requests sent by your clients or third-party APIs
- httpbin
HTTP request and response service - a/k/a Swiss Army Knife for HTTP
FakeRest
Patch XMLHttpRequest to fake a REST API client-side
json-server
Serve a REST API from fixture files using quick prototyping
- Mocky.io
Free online service to create fake HTTP responses
- MockServer
Easy mocking of any system you integrate with via HTTP or HTTPS
Request Baskets
Service to collect HTTP requests and inspect them via RESTful API or web UI
DuckRails
Mock quickly & dynamically API endpoints
- Mockoon
Easily create mock APIs locally. No remote deployment, no account required, open source
- Mockintosh
A mock server generator that's capable to generate RESTful APIs and communicate with the message queues to mimick asynchronous tasks
Testing / Validating
- JSON Schema
Declarative language that allows you to annotate and validate JSON documents
Testing / Public REST APIs To Use In Tests
- Deck of Cards API
Open API for simulating a deck of cards
Public APIS
Explore The Largest API Directory In The Galaxy
- Marvel Comics API
Query characters, stories, events about Marvel superheroes
- JSON Placeholder
Free online REST service that you can use whenever you need some fake data
- APIs.guru
Wikipedia for Web APIs, each API has OpenAPI/Swagger description
- The Cat API
Public API for Cats Images, Facts and Jokes
- Mockae
Fake REST API powered by Lua
Documentation
- Swagger
Documentation/querying web interface for REST APIs
- API doc
Inline Documentation for RESTful web APIs
raml2html
Generates HTML documentation from a RAML file
ReDoc
OpenAPI/Swagger-powered three-panel documentation
Slate
Beautiful and responsive three-panel API documentation using Middleman
Optic
Maintain an accurate API specification without writing OpenAPI/Swagger. Works with any Stack
API Gateway
Kong
Scalable, distributed, and plugin oriented API gateway backed by Nginx
Tyk API Gateway
Lightweight API gateway with analytics logging, written in Go
API Umbrella
API management platform for exposing web services, with web interface and analytics, written in Lua
WSO2 API Management
API management tool with lightweight gateway and API lifecycle management, written in Java
Express Gateway
Microservices API Gateway built on top of ExpressJS (Node.js)
KrakenD
Ultra performant API Gateway with middleware. Written in Go
- AWS API Gateway
Fully managed service that helps developers to create, publish, maintain, monitor, and secure APIs at any scale
SaaS Tools
Nango
Native integrations framework to consume REST APIs (open-source)
- Runscope
Automated API Monitoring & Testing
- Ping-API
Automated API Monitoring & Testing
- Apiary
Collaborative design, instant API mock, generated documentation, integrated code samples, debugging and automated testing
- Amazon API Gateway
Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale
- Apigee
Apigee is the leading provider of API technology and services for enterprises and developers
- 3scale
Nginx based API gateway to integrate internal and external API services with 3scale's API Management Platform
- Assertible
Continuously test and monitor your APIs after deployments and across environments
- Moesif
API Analytics for Debugging, Monitoring, and Usage Tracking for RESTful and GraphQL
- Beeceptor
An HTTP inspecting, mocking and proxing service. Gives named endpoints for creating mock API endpoints and simulate responses
Miscellaneous
react-admin
Add a ReactJS admin GUI to any RESTful API
ng-admin
Add an AngularJS admin GUI to any RESTful API
swagger-codegen
Auto generation of client libraries or server stubs given an OpenAPI specification (formerly known as the Swagger Specification)
Lumber
Generate the admin interface of your application
- Linx
Low-code API platform. Build, debug and host REST APIs
Nothing in this list matches your filter.
Featured in 8 awesome lists
Each link jumps to the spot where the list mentions awesome-rest.