Introduction
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!
Table of Contents
API Specification Languages
- Swagger Inspector: Test and auto-generate OpenAPI documentation for any API.
- Swagger Editor: An editor for designing Swagger specifications.
- Swagger Tools and Integrations: A list of libraries and frameworks serving the Swagger ecosystem.
- OpenAPI Spec Tooling: A list of libraries and frameworks serving the OpenAPI ecosystem.
- API Studio. Write, mock, and share your Swagger specifications online.
- Dredd: Validate API documentation written in API Blueprint against its backend implementation.
- Restlet Studio: Web IDE for API Design.
- API Spec Converter: Convert between different API spec formats.
- Prism: Supercharge any OAS file with mocking, transformations, validations, and more.
- Apimatic: Supports API description formats including Swagger, OAI format, RAML, API Blueprint, IO Docs, WADL, Postman Collections and HAR 1.4 and more
- Mulesoft Anypoint: Design and publish enterprise-grade APIs using RAML
- Sandbox: Quick and easy mock RESTful API from API definitions
- Restunited: Generate SDK, Documentation with Testing and Debugging
API Specifications
- API Commons: A repository of language-agnostic API specifications / Data Models.
- APIS.guru: Directory of API specs in OpenAPI(aka Swagger) 2.0 format.
- AnyAPI: Documentation and Test Consoles for Public APIs.
API Frameworks
Ruby
- 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.
- roar: Parse and render REST API documents using representers.
Python
- 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.
- Falcon: Falcon is a low-level, high-performance Python framework for building HTTP APIs, app backends, and higher-level frameworks.
- Connexion: Swagger/OpenAPI First framework for Python on top of Flask with automatic endpoint validation and OAuth2 support
- apistar: A smart Web API framework, designed for Python3.
- sanic: Sanic is a Flask-like Python 3.5+ web server that’s written to go fast.
- hug: hug aims to make developing Python driven APIs as simple as possible, but no simpler.
Javascript
- 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.
- Feathers: Build RESTful and real-time APIs through Socket.io or Primus.
- Deployd: Deployd is the simplest way to build realtime APIs for web and mobile apps
- Nest: A modern node.js framework for efficient and scalable web applications built on top of TypeScript
Go
- Go-Json-Rest: Thin layer on top of
net/http
that helps building RESTful APIs easily
- gocrud: Go library to simplify creating, updating and deleting arbitrary depth structured data — to make building REST services fast and easy.
- 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.
- Zerver: Zerver is a expressive, modular, feature completed RESTful framework.
Scala
- 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.
- Akka HTTP: The Akka HTTP modules implement a full server- and client-side HTTP stack on top of akka-actor and akka-stream.
- Swagger Akka HTTP: Swagger-Akka-Http brings Swagger support for Akka-Http Apis.
Java
- Rest.li: REST framework using type-safe bindings and asynchronous, non-blocking IO.
- Dropwizard: Framework for developing ops-friendly, high-performance, RESTful web services.
- Jersey: RESTful web services in Java.
- Spring Boot: RESTful Web Service using Spring, high-performance and little configuration needed.
- Metamug Mason: Create REST APIs with JSP tags and SQL. Edit and hot deploy REST resources on the server.
Haskell
- Scotty: Micro web framework inspired by Ruby’s Sinatra, using WAI and Warp.
- Spock: Another Haskell web framework for rapid development.
- Servant: A Type-Level Web DSL.
- Yesod: The Haskell RESTful web framework.
Elixir
- Phoenix: Framework for building HTML5 apps, API backends and distributed systems.
- Plug: A specification and conveniences for composable modules between web applications.
Erlang
- 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.
Postgres
- PostgREST: Serve a RESTful API from any existing PostgreSQL database.
- pREST: pREST is a way to serve a RESTful API from any databases written in Go.
MySQL
- xmysql: Generate REST APIs for any MySQL Database.
PHP
- API Platform: API framework on top of Symfony with JSON-LD, Schema.org and Hydra support
- Dingo API: A RESTful API package for the Laravel and Lumen frameworks
- Fractal: Fractal provides a presentation and transformation layer for complex data output, the like found in RESTful APIs, and works really well with JSON
- Yii2 Framework: Provides a whole set of tools to simplify the task of implementing RESTful Web Service APIs
Miscellaneous
General
- OpenAPI extension for Microsoft Visual Studio Code: Microsoft VS Code IDE has an OpenAPI extension that includes OpenAPI / Swagger file creation, editing, navigation, code snippets, IntelliSense, security static analysis.
- Swagger CodeGen: Generate client libraries automatically from a Swagger-compliant server.
- sdks.io: Explore Automatically Generated SDKs.
- AutoRest: Generate client libraries for RESTful web services
- Unirest: Lightweight HTTP-Request client libraries for several languages
- OpenAPI Generator: A community fork of Swagger Codegen to automatically generate API clients, server stubs and documentation for REST APIs given an OpenAPI/Swagger spec.
Ruby
- Net::HTTP: An HTTP client API for Ruby.
- faraday: Simple, but flexible HTTP client library, with support for multiple backends.
- rest-client: Simple HTTP and REST client for Ruby
- heroics: Ruby HTTP client for APIs represented with JSON schema.
- blanket: A Ruby API wrapper.
- nestful: Ruby HTTP/REST client.
Java
- Retrofit: A type-safe HTTP client for Android and Java.
Javascript
- Restangular: Restangular is an AngularJS service that simplifies common GET, POST, DELETE, and UPDATE requests with a minimum of client code
.NET
- Refit: The automatic type-safe REST library for .NET Core, Xamarin and .NET
- WebAnchor: Web Anchor provides type-safe, testable and flexible access to web resources.
API Documentation
- ReDoc: OpenAPI/Swagger-generated API Reference Documentation.
- 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.
- API Docs: Hosted public API documentation for OAS (Swagger) and RAML specs.
- Docula: Documentation using Github and OpenAPI standards.
- Docbox: REST API documentation generator, using Markdown.
- widdershins: REST API documentation generator from OpenAPI 3.0 / Swagger 2.0 / AsyncAPI 1.x / Semoasa 0.1.0 definition
API Clients
Hosted
Desktop
- Firecamp: API Studio for WebSocket, Rest API and GraphQL.
- HTTPie: Command line HTTP client.
- HttpMaster: Desktop tool for REST API testing.
- Paw: REST client for Mac.
- Postman: Desktop API testing tool.
- Insomnia: REST API client for Mac, Windows, and Linux.
- Jsonium: Free REST client for JSON over HTTP protocols
- I’m only Resting: Windows GUI tool for REST API testing
API Debugging and Mocking
Hosted
- Beeceptor: An HTTP-proxy for rest APIs - inspect and build mock APIs.
- MockBin: Generate mock HTTP endpoints.
- RequestBin: Inspect and debug webhook POST requests.
- httpbin: Templated responses for testing various scenarios for HTTP requests.
Desktop
- Json-Server Full fake REST API with zero coding.
- Mockoon: Desktop API mocking tool.
- Postman: Desktop API client and mocking tool.
API Design Guides
API Publishing
API Gateways
- Ambassador API Gateway: Ambassador is a specialized control plane that translates Kubernetes annotations to Envoy configuration. All traffic is directly handled by the high-performance Envoy Proxy.
- 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.
- 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.
- Kong: An open-source management layer for APIs, delivering high performance and reliability.
- Janus: A lightweight API Gateway written in Go by Hello Fresh.
- fabio: A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul by eBay.
- Traefik: Træfik (pronounced like traffic) is a modern HTTP reverse proxy and load balancer written in Go.
- Oathkeeper: OIdentity & Access Proxy (IAP) that authorizes HTTP requests based on sets of rules. Integrates with ORY Hydra.
API Security
- Online OpenAPI/Swagger File Security Audit: Free online static analysis of API contract files. Upload the file and get the report.
- API Security checklist: Checklist of the most important security countermeasures when designing, testing, and releasing your API.
- Ory Hydra: OAuth2 server with OpenID Connect written in Go.
- Approov: Mobile App Attestation to ban API abuse by verifying the software that is accessing your API. User authentication is not enough!
- 42Crunch: API Security platform that includes static analysis, dynamic testing (scan), and runtime protection (API firewall.)
API Monitoring
API Testing
- Assertible: Continuously test and monitor your APIs after deployments and across environments.
- Pyresttest: YAML based REST testing and API microbenchmarking tool
- OWASP Zaproxy: A tool to test your API for known security vulnerabilities, with a great CI integration.
- vREST NG: An enterprise ready application for automated API Testing. It is very simple and intuitive application.
API Developer Portal
- Tyk: API Developer Portal on top of API gateway, make your API gateway easier to be used by developers.
- APIMATIC: Instantly build an API Portal with SDKs, Live Code Samples, Test Cases, API Transformation and language specific Docs & Reference - tailored for your API.
- DWOLLA: Simple and powerful API for ACH transfers.
- Fusio: Fusio is an open source API management platform which helps to build and manage REST APIs. Fusio provides all tools to quickly build an API from different data sources yet it is possible to create complete customized responses.
- Gravitee: Open source API platform, unleash the power of your APIs.
- Wicked Haufe: Open Source API Management. A full stack open source solution to API Management, based on Mashape’s Kong, node.js, and docker.
Learning Resources
Follow us on Blog