Giter Club home page Giter Club logo

api-development-tools's Introduction

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 Spec Tooling: A list of libraries and frameworks serving the OpenAPI ecosystem.
  • API Studio. Write, mock, and share your Swagger specifications online.
  • Dredd: Validate API documentation written in API Blueprint against its backend implementation.
  • APITransformer: Transform API Descriptions from/to various formats e.g., Swagger, API Blueprint, RAML, WADL, Google Discovery, I/O Docs.
  • Restlet Studio: Web IDE for API Design.
  • API Spec Converter: Convert between different API spec formats.
  • Prism: Supercharge any OAS file with mocking, transformations, validations, and more.
  • Apimatic: Supports API description formats including Swagger, OAI format, RAML, API Blueprint, IO Docs, WADL, Postman Collections and HAR 1.4 and more
  • Mulesoft Anypoint: Design and publish enterprise-grade APIs using RAML
  • Sandbox: Quick and easy mock RESTful API from API definitions
  • Restunited: Generate SDK, Documentation with Testing and Debugging

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.

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.

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.

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.

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.
  • sdks.io: Explore Automatically Generated SDKs.
  • AutoRest: Generate client libraries for RESTful web services
  • Unirest: Lightweight HTTP-Request client libraries for several languages

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

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.
  • Embed curl: Embeddable curl commands on the web.
  • Gelato: Create developer portals for your API.
  • API Docs: Hosted public API documentation for OAS (Swagger) and RAML specs.
  • Docula: Documentation using Github and OpenAPI standards.
  • Docbox: REST API documentation generator, using Markdown.

API Clients

Hosted

Desktop

  • HTTPie: Command line HTTP client.
  • HttpMaster: Desktop tool for REST API testing.
  • Paw: REST client for Mac.
  • Postman: Desktop API testing tool.
  • Insomnia: REST API client for Mac, Windows, and Linux.
  • Jsonium: Free REST client for JSON over HTTP protocols
  • I'm only Resting: Windows GUI tool for REST API testing

API Debugging and Mocking

Hosted

  • Beeceptor: An HTTP-proxy for rest APIs - inspect and build mock APIs.
  • MockBin: Generate mock HTTP endpoints.
  • RequestBin: Inspect and debug webhook POST requests.
  • httpbin: Templated responses for testing various scenarios for HTTP requests.

Desktop

  • Json-Server Full fake REST API with zero coding.
  • Mockoon: Desktop API mocking tool.
  • Postman: Desktop API client and mocking tool.

API Design Guides

API Publishing

API Gateways

  • AWS API Gateway: Traffic management, authorization and access control, monitoring, and API version management.
  • API Umbrella: Proxy that sits in front of your APIs.
  • APIAxle: Proxy that sits in front of your APIs.
  • 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 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 Monitoring

API Testing

  • Assertible: Continuously test and monitor your APIs after deployments and across environments.
  • Pyresttest: YAML based REST testing and API microbenchmarking tool

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.