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
- API Specification Tools
- API Specifications
- API Frameworks
- API Client Development Tools
- API Documentation
- API Clients
- API Debugging and Mocking
- API Design Guides
- API Publishing
- API Gateways
- API Security
- API Monitoring
- API Testing
- API Developer Portal
- JSON Format Standards
- Learning Resources
- Blogs
- References
API Specification Languages
API Specification Tools
- 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
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:
⚡ Fiber is an Express inspired web framework written in Go with☕ .
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
- Dream Factory: Turn any database into an API platform.
API Client Development Tools
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.
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.
- 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
- JSON Generator: Generate and host mock JSON data.
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.
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.
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
- Google API Design Guide
- PayPal API Style Guide
- Heroku Platform HTTP API Design Guide
- Haufe API Style Guide
- Microsoft REST API Guidelines
- 18F API Standards
- The RESTed NARWHL
- White House Web API Standards
- Zalando REST API Guidelines
- API Stylebook Design Guidelines
- API Stylebook Design Topics
- Adidas-group API Design Guide
- Azure API Design
API Publishing
- Mashape: API Marketplace.
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
- 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.
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.
- Cronit: A tool to schedule recurring calls to any API
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.
JSON Format Standards
Learning Resources
- REST in Practice
- Roy Fielding's dissertation on REST
- Best Practices for Designing a Pragmatic RESTful API
- How to Design a REST API
- Automated API Development
- Nordic APIs
- Undisturbed REST
- Build APIs You Won't Hate
- Irresistible APIs
- How to build an API
- API University
- RESTful Web Services
- RESTful Web APIs
- The Ten Essentials for Good API Documentation
- APIsecurity.io weekly newsletter
- Testing Web APIs
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).