/api-development-tools

:books: 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

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

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

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

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.
  • 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

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