HTTP API Development Tools
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
extension for VS Code: Visual Studio Code (VS Code) extension that
provides support for the OpenAPI Specification.
- OpenAPI
plugin for JetBrains IDEs: Jetbrains plugin that provides support
for the OpenAPI Specification.
- Dredd: Validate API
documentation written in API Blueprint against its backend
implementation.
- API Spec
Converter: Convert between different API spec formats.
- Apimatic: Supports API
description formats including Swagger, OAI format, RAML, API Blueprint,
IO Docs, WADL, Postman Collections and HAR 1.4 and more
- OpenAPI Definition
Designer: Free visual OpenAPI3 definition creation and editing
tool.
- Stoplight Studio: Create,
prototype, and share OpenAPI descriptions and JSON Schemas using a
visual editor.
- Spectral:
Define rulesets to lint YAML or JSON, including OpenAPI 2.x, 3.x and
AsyncAPI
- Optic:
Verify the accuracy of your OpenAPI 3.x spec using real traffic, and
automatically apply patches that keep it up-to-date
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.
- FastAPI: FastAPI
is a modern, fast (high-performance), web framework for building APIs
with Python 3.6+ based on standard Python type hints.
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.
- Fiber: :zap:Fiber is
an Express inspired web framework written in Go with :coffee: .
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
R
- Plumber: API Framework to
build APIs for simple R Functions
C
Miscellaneous
General
- Swagger
CodeGen: Generate client libraries automatically from a
Swagger-compliant server.
- AutoRest: Generate
client libraries for RESTful web services
- 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.
- at-your-service: A
developer tool for API observability on the browser. Generate OpenAPI
specifications and code from network traffic.
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.
.Dart
- Frog: Dart Frog
is built on top of shelf and mason and is inspired by many tools
including remix.run, next.js, and express.js.
- Serverpod:
Serverpod is a next-generation app and web server, built for the Flutter
community. It allows you to write your server-side code in Dart,
automatically generate your APIs, and hook up your database with minimal
effort. Serverpod is open-source, and you can host your server
anywhere.
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.
- DeveloperHub: Documentation
tool to write, publish, review, analyse and collect feedback on
personalised customer-facing API docs.
- 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.
- API Docs: Hosted public API
documentation for OAS (Swagger) and RAML specs.
- 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
- Elements: Web
Components-based API documentation for OpenAPI 3.x/2.x
API Clients
Open Source
- Hoppscotch:
API client for REST, GraphQL, Websocket, SSE, Socket.IO and MQTT
Hosted
Desktop
- Postman: Desktop API
testing tool.
- Firecamp: API Studio for
WebSocket, Rest API and GraphQL.
- HTTPie: Command line HTTP
client.
- Paw: REST client for Mac.
- Insomnia: REST API client for
Mac, Windows, and Linux.
- httpy: Programmable
Command line HTTP client.
API Debugging and Mocking
Hosted
- Beeceptor: An HTTP-proxy for
rest APIs - inspect and build mock APIs.
- MockBin: Generate mock HTTP
endpoints.
- httpbin: Templated responses for
testing various scenarios for HTTP requests.
- Prism: a set of
packages for API mocking and contract testing with OpenAPI v2 (formerly
known as Swagger) and OpenAPI v3.x, including mock servers and a
validation proxy.
- MockingCloud: Generate full
mock REST APIs with just OpenAPI yaml/json spec files.
- Svix Play: Easily inspect,
test, and debug incoming webhooks.
Desktop
- Postman:
Desktop API client and mocking tool.
- Json-Server
Full fake REST API with zero coding.
- Mockoon: Desktop API mocking
tool.
API Design Guides
API Publishing
API Gateways
- AWS API Gateway:
Traffic management, authorization and access control, monitoring, and
API version management.
- 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.
- 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
API Web Scanners
- Cherrybomb: Stop
half-done API specifications! Cherrybomb is a CLI tool that helps you
avoid undefined user behaviour by validating your API
specifications.
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.
- RestQA: Microservice
API Testing tool focused on providing a great developer experience.
- Optic CI:
Test for breaking API changes in CI Pipelines
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.
- Optic Docs: Share
verified-accurate OpenAPI documentation with your consumers. With Optic
they can subscribe to your API and get notified when it changes.
Learning Resources
Blogs
References
Contributing
Pull
Requests are most welcome!
Please write a brief one-sentence summary when adding a new
resource.
Thanks
api-development-tools © 2016+, Yos Riady. Released
under the MIT License.
Authored and maintained by Yos Riady with help from contributors (list).
yos.io · GitHub @yosriady