• Stars
    star
    3,466
  • Rank 12,333 (Top 0.3 %)
  • Language
  • Created almost 9 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ“š 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

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.

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

More Repositories

1

merkle_tree

๐ŸŒฒ Merkle Tree implementation in pure Elixir
Elixir
97
star
2

serverless-auth

Serverless Authorization example with JWT and AWS Custom Authorizers
JavaScript
80
star
3

continuous-token

ERC20 token with built-in Automated Market Maker + Bonding Curve
Solidity
80
star
4

serverless-stripe-backend

Serverless payments built on AWS Lambda & the Serverless framework
JavaScript
76
star
5

ecs

๐Ÿฐ Entity Component System
Elixir
66
star
6

serverless-crud-go

Example CRUD Serverless Application in Go
Go
49
star
7

serverless-ethers

Serverless smart contract automation service, built on the Serverless framework.
34
star
8

serverless-stripe-frontend

Frontend application for `serverless-stripe-backend` written in Next.js & React
JavaScript
29
star
9

serverless-go-boilerplate

Boilerplate Serverless Go project
Go
25
star
10

contracts-starter

A robust smart contract development template for Ethereum and EVM chains
TypeScript
20
star
11

haiku

๐Ÿ—ป Generate memorable names similar to Xaddress or Heroku
Elixir
20
star
12

serverless-sagas

Distributed saga example with AWS Lambda and Step Functions
JavaScript
20
star
13

gravity

๐Ÿš€ Elixir client for the Gravatar API
Elixir
20
star
14

pubsub

๐Ÿ“ฃ Publish-Subscribe in Elixir
Elixir
19
star
15

node-bayes

๐Ÿ“ˆ Naive Bayes classifier for Node
JavaScript
14
star
16

kare

๐Ÿ› Curry functions in Elixir
Elixir
12
star
17

decision_tree

๐ŸŒณ Decision Tree Learning in pure Elixir (in progress)
Elixir
10
star
18

bloom_filter

๐ŸŒป Bloom Filter implementation in pure Elixir
Elixir
10
star
19

curl-to-har

Convert curl commands to HAR request objects
JavaScript
10
star
20

testing-solidity

Example Solidity unit testing Truffle project. Includes common test scenarios and a kitchen sink of test helpers.
JavaScript
7
star
21

datatron

Hack 'n Roll 2016 - Data Analytics Platform
JavaScript
7
star
22

openresty-quickstart

Barebones OpenResty Project
Nginx
5
star
23

apidocs-gallery

Showcasing the best of API documentation
HTML
4
star
24

simple_statistics

๐Ÿ“Š Sample Elixir library
Elixir
4
star
25

circuit-breakers

Fault tolerant smart contracts with Circuit Breakers in Solidity.
Solidity
4
star
26

dapp-boilerplate

Minimal Ethereum Decentralized Application (รApp) Boilerplate with Solidity and Truffle
JavaScript
3
star
27

serverless-crud-go-tf

Serverless CRUD application with Go, AWS Lambda, and Terraform
HCL
3
star
28

petstore-node-server

Autogenerated Node.js API Server Stub using Swagger Codegen
JavaScript
3
star
29

awesome-web3

A curated list of awesome Web3 tools, books, courses, and more. Launch and learn on web3 faster!
3
star
30

patronage-collectibles

Harberger-Taxed ERC721 Collectibles for Decentralized Crowdfunding
Solidity
2
star
31

Other-Java-code

Java
2
star
32

sheethub

Community marketplace for musicians
Ruby
2
star
33

pdfminer-sample

Sample of how to use pdfminer to convert PDF to txt
Python
2
star
34

ark-minter

https://trello.com/b/59noB5R1/ark-minter-mvp
JavaScript
2
star
35

sanity-check

Chakra UI + Electron React Boilerplate = ERR
TypeScript
2
star
36

orbital-leaflet

CP3108B: Independent Work (Orbital) Web Map API tutorial using Leaflet
Python
1
star
37

ytunes-2013

Hackathon '13 entry. Hacked together in less than 24 hours. All the songs you want, powered by Youtube.
JavaScript
1
star
38

exkv

Distributed key-value store in Elixir
Elixir
1
star
39

neural_network

๐Ÿ’ญ Artifical Neural Networks in Elixir (in progress)
Elixir
1
star
40

bioinformatics.rb

Computational Biology in Ruby
Ruby
1
star
41

merchant

Practice Merchant Rails application
Ruby
1
star
42

codeextremeapps

1st Prize $9000 winning entry (RUM: Realtime Ubiquitous Monitoring)
JavaScript
1
star
43

botsquad

Automated Agents as a Service
Ruby
1
star
44

paypal-rest-sample-app

Sample Rails application for PayPal REST APIs
Ruby
1
star
45

wrapped-ERC20

Turn your faulty ERC20 tokens to a compliant Wrapped ERC20 token.
JavaScript
1
star
46

geogist

Create and Share GeoJSON snippets.
Ruby
1
star
47

snapnext

Backend for a photo filter app
JavaScript
1
star
48

xdomain-ownership

TypeScript
1
star
49

serverless-kinesis

Serverless realtime processing pipeline with Kinesis Streams
JavaScript
1
star
50

pg_tags

A high performance tagging gem for Rails applications using the PostgreSQL array type. A simpler alternative to acts_as_taggable_on.
Ruby
1
star