This is a collection of useful resources for building RESTful HTTP+JSON APIs. There are a lot of good tools and entire ecosystems out there! It can be overwhelming not knowing what options are available, so you can use this as a reference starting point.
Contributions are most welcome. Categories are also open to suggestions!
- API Specification Languages
- API Specification Tools
- API Frameworks
- API Client Library Tools
- API Documentation
- API Testing
- API Design Guides
- API Publishing
- API Gateways
- API Monitoring
- JSON Format Standards
- Learning Resources
- References
- Swagger Editor: An editor for designing Swagger specifications.
- API Studio. Write, mock, and share your Swagger specifications online.
- Dredd: Validate API documentation written in API Blueprint against its backend implementation.
- APITransformer: Transform API Descriptions from/to various formats e.g., Swagger, API Blueprint, RAML, WADL, Google Discovery, I/O Docs.
- rails-api: Rails for API only applications.
- pliny: Opinionated template Sinatra app for writing APIs in Ruby.
- grape: An opinionated micro-framework for creating REST-like APIs in Ruby.
- ActiveModel::Serializer: Brings convention over configuration to your JSON generation.
- rabl: Generate JSON and XML from any ruby object.
- jbuilder: Create JSON structures via a Builder-style DSL.
- Django REST framework: Toolkit that makes it easy to build Web APIs.
- Tastypie: Webservice API framework for Django.
- restless: A lightweight REST miniframework for Python.
- flask-restful: Simple framework for creating REST APIs.
- hapi.js: Web and services application framework for Node.js.
- Restify: Node.js REST framework specifically meant for web service APIs.
- Express: Fast, unopinionated, minimalist web framework for Node.js.
- sailsjs: Realtime MVC Framework for Node.js.
- Actionhero - Multi-transport Node.js API server with integrated cluster capabilities and delayed tasks.
- Baucis - To build
- Koa - Next generation web framework for Node.js
- Loopback - Node.js framework for creating APIs and easily connecting to backend data sources.
- Seneca - A microservices toolkit for Node.js
- Colossus - I/O and microservice library for Scala.
- Finatra - Fast, testable, Scala HTTP services built on Twitter-Server and Finagle.
- Play - The high velocity web framework for Java and Scala.
- Scalatra - Simple, accessible and free web micro-framework.
- Skinny Micro - Micro-web framework to build servlet applications in Scala.
- Spray - Open-source toolkit for building REST/HTTP-based integration layers on top of Scala and Akka.
- Scotty - Micro web framework inspired by Ruby's Sinatra, using WAI and Warp.
- Yesod - The Haskell RESTful web framework.
- Phoenix - Framework for building HTML5 apps, API backends and distributed systems.
- Plug - A specification and conveniences for composable modules between web applications.
- Cowboy - Small, fast, modular HTTP server written in Erlang.
- Gen Microservice - This library solves the problem of implementing microservices with Erlang.
- Mochiweb - Erlang library for building lightweight HTTP servers.
- PostgREST: Serve a RESTful API from any existing PostgreSQL database.
- API Platform: API framework on top of Symfony with JSON-LD, Schema.org and Hydra support
- Swagger CodeGen: Generate client libraries automatically from a Swagger-compliant server.
- heroics: Ruby HTTP client for APIs represented with JSON schema.
- blanket: A Ruby API wrapper.
- nestful: Ruby HTTP/REST client.
- Swagger UI: Dynamically generate documentation from a Swagger-compliant API.
- Slate: Static site generated documentation for your API.
- prmd: JSON Schema tooling: scaffold, verify, and generate documentation from JSON Schema documents.
- Aglio: An API Blueprint renderer with theme support that outputs static HTML.
- Apiary: Collaborative design, instant API mock, generated documentation, integrated code samples, debugging and automated testing.
- Readme: API Documentation Hosting.
- Embed curl: Embeddable curl commands on the web.
- Gelato: Create developer portals for your API.
- Postman: Desktop API testing tool.
- Paw: REST client for Mac.
- Insomnia REST Client: REST client Chrome app.
- MockBin: Generate mock HTTP endpoints.
- JSON Generator: Generate and host mock JSON data.
- RequestBin: Inspect and debug webhook POST requests.
- Hurl.it: Web-based HTTP client.
- Mashape: API Marketplace.
- AWS API Gateway. Traffic management, authorization and access control, monitoring, and API version management.
- API Umbrella: Proxy that sits in front of your APIs.
- APIAxle: Proxy that sits in front of your APIs.
- APIGrove: API manager built in Java on top of Fuse ESB.
- APIUmbrella: API management platform
- Apigee127: nodejs based API Gateway
- Pushpin: Proxy for both request/response or streaming (long poll) of responses
- Strongloop: nodejs based API Gateway
- Fusio: PHP based open source API management platform
- Camel - Empowers you to define routing and mediation rules in a variety of domain-specific languages, including a Java-based fluent API, Spring or Blueprint XML configuration files, and a Scala DSL.
- HAProxy - Reliable, high Performance TCP/HTTP load balancer.
- OpenResty - Fast web application server built on top of Nginx.
- Tengine - A distribution of Nginx with some advanced features.
- Tyk - Open-source, fast and scalable API gateway, portal and API management platform.
- Vulcand - Programmatic load balancer backed by Etcd.
- Zuul - An edge service that provides dynamic routing, monitoring, resiliency, security, and more.
- Runscope: API Performance Monitoring.
- Galileo: API Monitoring Platform.
- Ping-API: Automated API Testing.
- Choosing an HTTP Status Code
- REST in Practice
- Roy Fielding's dissertation on REST
- Best Practices for Designing a Pragmatic RESTful API
- How to Design a REST API
Pull Requests are most welcome!
Please write a brief one-sentence summary when adding a new resource.