/api-development-tools

A collection of useful resources for building RESTful HTTP+JSON APIs.

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

  • 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: ⚡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

R

  • Plumber: API Framework to build APIs for simple R Functions

C#

Miscellaneous

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.
  • 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
  • Hurl: Hurl makes it easy to work with HTML content, REST / SOAP / GraphQL APIs, or any other XML / JSON based APIs.

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

  • Runscope: API Performance Monitoring.
  • Ping-API: Automated API Testing.
  • Streamdal: A tool to embed privacy controls in your application code to detect PII as it enters and leaves your systems, preventing it from reaching unintended APIs, databases, data streams, or pipelines.

API Testing

  • Assertible: Continuously test and monitor your APIs after deployments and across environments.
  • Hurl: Hurl makes it easy to test HTML content, REST / SOAP / GraphQL APIs, or any other XML / JSON based APIs.
  • 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.

JSON Format Standards

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