Awesome Lists

awesome-rest

by marmelab

awesome listpushed about 2 years ago

A collaborative list of great resources about RESTful API architecture, development, test, and performance

AI summary

API guide

A curated list of resources and guidelines for designing, developing, testing, and optimizing RESTful APIs.

stars
3.7K
forks
403
watching
148
awesome lists
8
entries
172
View on GitHubgithub.com/marmelab/awesome-rest

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/marmelab/awesome-rest/links.svg)](https://awesome.facts.dev/awesome/marmelab/awesome-rest)
HTML
<a href="https://awesome.facts.dev/awesome/marmelab/awesome-rest"><img src="https://awesome.facts.dev/shield/marmelab/awesome-rest/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/marmelab/awesome-rest/links.svg

What's in the list

172 links in 28 sections, with live GitHub stats.activeno commit in 2y

Design

Design / Guidelines

Standards

  • JSON API

    Standard for building APIs in JSON

  • RAML

    Simple and succinct way to describe RESTful API

  • JSend

    Simple specification that lays down some rules for how JSON responses from web servers should be formatted

  • OData

    Open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs. Quite complex

  • HAL

    Simple format that gives a consistent and easy way to hyperlink between resources in your API

  • JSON-LD

    Standard for describing Linked Data and hypermedia relations in JSON (W3C)

  • Hydra

    Vocabulary for Hypermedia-Driven Web APIs (W3C)

  • Schema.org

    Collection of schemas describing common data models

  • OpenAPI

    Formerly known as the Swagger Specification, OpenAPI specifcation is the world’s most popular description format for defining Restful APIs

Clients / PHP Clients

  • Guzzle

    HTTP client and framework for consuming RESTful web services

  • Buzz

    Another lightweight HTTP client

  • unirest for PHP

    Simplified, lightweight HTTP client library

Clients / JavaScript Clients

  • restangular

    AngularJS service to handle REST API properly and easily

  • restful.js

    JS client for interacting with server-side RESTful resources

  • traverson

    A Hypermedia API/HATEOAS Client for Node.js and the Browser

  • raml-client-generator

    Generates static client libs for js

Clients / Node.js Clients

Clients / Ruby Clients

  • RESTClient

    Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions

  • Spyke

    Interact with REST services in an ActiveRecord-like manner

  • excon

    Usable, fast, simple Ruby HTTP 1.1. It works great as a general HTTP(s) client and is particularly well suited to usage in API clients

  • httparty

    Makes HTTP fun again!

  • Net::HTTP

    Net::HTTP provides a rich library which can be used to build HTTP user-agents

  • raml-ruby-client-generator

    Auto generate API client from a RAML file

Clients / Go Clients

  • gopencils

    Small and simple package to easily consume REST APIs

  • resty

    Simple HTTP and REST client for Go inspired by Ruby rest-client

Clients / .NET Clients

  • RestSharp

    Simple REST and HTTP API client for .NET

  • Refit

    The automatic type-safe REST library for Xamarin and .NET

  • Flurl

    Fluent, portable, testable REST/HTTP client library

  • RestEase

    Easy-to-use typesafe REST API client library, which is simple and customisable. Heavily inspired by Refit

  • Tiny.RestClient

    Simpliest Fluent REST client for .NET

  • RestLess

    The automatic type-safe-reflectionless REST API client library for .Net Standard

  • Apizr

    Refit-based web api client, but resilient (retry, connectivity, cache, auth, log, priority, etc...)

Clients / Generators

  • openapi-generator

    OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

Servers / Directly On Top Of A RMDB

  • postgrest

    Serve a fully RESTful API directly from an existing PostgreSQL database

  • MySQL HTTP plugin

    Simple REST-like / CRUD server for any MySQL database

  • pREST

    A fully RESTful API from any existing PostgreSQL database written in Go

Servers / Node.js

  • node-restify

    Framework specifically meant for REST API

  • Sails.js

    Node.js Web framework embedding a command to generate automatically a REST API

  • mers

    Express service exposing Mongoose finders as RESTful API

  • Baucis

    Build scalable REST API based on your Mongoose entities

  • flatiron/resourceful

    Isomorphic Resource engine for JavaScript

  • loopback

    Powerful Node.js framework for creating APIs and easily connecting to backend data sources

  • Feathers

    is a real-time, micro-service web framework that gives you control over your data via RESTful resources, sockets and flexible plug-ins

  • Expressa

    Express middleware for creating APIs from JSON schemas with a simple admin editor and permissions model

  • rest-hapi

    Generate RESTful API based on mongoose models that supports relational data

  • Nestjsx/crud

    Generate CRUD controllers and services for RESTful API with NestJS and TypeORM

Servers / PHP

  • Microrest

    Micro-web application providing a REST API on top of any relational database

  • Negotiation

    Content negotiation library

  • Drest

    Library for exposing Doctrine entities as REST resource endpoints

  • Restler

    Lightweight framework to expose PHP methods as RESTful web API

  • HAL

    Hypertext Application Language (HAL) builder library

  • Apigility

    API builder built with Zend Framework 2

  • phprest

    Specialized REST microframework for PHP

  • Hateoas

    PHP library to support implementing representations for HATEOAS REST web services

  • Fusio

    Open source API management platform

  • REST APIs with Symfony2: the Right Way

    Complete guide to build a state-of-the-art REST API with Symfony2 framework

  • FOSRestBundle

    Bundle handling view, routing, error handling, etc. for your REST API

  • stanlemon/rest-bundle

    Build a REST API based on Doctrine entities using conventions over configuration

  • lakion/Lionframe

    Glu between several community libraries to ease API development

  • BazingaHateoasBundle

    Integrate the library into a Symfony2 application

  • Symfony REST Edition

    Start with a Symfony2 application with all REST-friendly bundles pre-configured

  • NgAdminGeneratorBundle

    Boostrap ng-admin configuration based on

  • DunglasApiBundle

    Build a REST API which follow Hydra/JSON-LD specification

  • API Platform

    Specialize Symfony edition for the creation of hypermedia REST APIs

  • NelmioApiDocBundle

    Generate documentation for your REST API from annotations

Servers / PowerShell

  • Pode

    Pode is an cross-platform, open-source, community-supported web server and REST API framework for PowerShell developers

Servers / Python

  • Django REST framework

    Powerful and flexible toolkit that makes it easy to build Web APIs

  • django-tastypie

    Creating delicious APIs for Django apps

  • flask-restful

    Extension for Flask that adds support for quickly building REST APIs

  • flask-restless

    Flask extension for generating ReSTful APIs for database models defined with SQLAlchemy (or Flask-SQLAlchemy)

  • sandman

    Automated REST APIs for existing database-driven systems

  • restless

    Framework agnostic REST framework based on lessons learned from TastyPie

  • Python Eve

    Eve is an open source Python REST API framework designed for human beings. It allows to effortlessly build and deploy highly customizable, fully featured RESTful Web Services

  • Ramses

    Makes RAML files executable by generating production-ready APIs from them at runtime

  • Flask-Potion

    Flask-Potion is a powerful Flask extension for building RESTful JSON APIs. It also provides several Clients for easier access to the API

  • apistar

    A smart Web API framework, designed for Python 3

  • Falcon

    Falcon is a bare-metal Python web API framework for building high-performance microservices, app backends, and higher-level frameworks

  • FastAPI

    FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. With automatic API documentation using Swagger UI and ReDoc, based on OpenAPI and JSON Schema

Servers / Ruby

  • Grape

    Opinionated micro-framework for creating REST-like APIs in Ruby

  • Rails

    RailsGuides: Using Rails for API-only applications

Servers / Go

  • gocrud

    : Go library to simplify creating, updating and deleting arbitrary depth structured data — to make building REST services fast and easy

  • go-json-rest

    Thin layer on top of that helps building RESTful APIs easily

  • 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

Servers / Java

  • RestExpress

    Netty-based, highly performant, lightweight, container-less, plugin-extensible, framework that is ideal for microservice architectures

  • Vertx-Web

    Vert.x-Web is a set of building blocks for building web applications with Vert.x, a toolkit for building reactive applications on the JVM

  • Dropwizard

    A framework for developing ops-friendly, high-performance, RESTful web services

Servers / Scala

  • Chaos

    A lightweight framework for writing REST services in Scala

Servers / Haskell

  • Rest for Haskell

    This package allows you to create REST APIs in Haskell. These APIs can be run in different web frameworks. They can also be used to automatically generate documentation as well as client libraries

Testing / Querying

  • httpie

    Command line HTTP client, far more dev-friendly than

  • resty

    Little command line REST client that you can use in pipelines (bash or zsh)

  • jq

    Command line JSON processor, to use in combination with a command-line HTTP client like cURL

  • HttpMaster

    GUI tool for testing REST APIs and services. Windows OS only

  • Http-console

    Command line interface for HTTP that let you

  • HTTP Prompt

    HTTP Prompt is an interactive command-line HTTP client featuring autocomplete and syntax highlighting, built on HTTPie and prompt_toolkit

  • rest-assured

    Java DSL for easy testing of REST services

  • Insomnia

    Cross-platform HTTP and GraphQL Client

  • ExtendsClass

    Make HTTP requests with a simple web-based HTTP client

  • TestMace

    Cross-platform simple but powerful IDE for API automation testing

  • Milkman

    Extensible cross-platform request/response workbench, not only for http calls

  • Schemathesis

    Property-based testing tool for web applications built with Open API and GraphQL specifications

  • Step CI

    Open-source framework for API Quality Assurance, which tests REST, GraphQL and gRPC automated and from Open API spec

  • RestQA

    A REST API testing Framework based on BDD / Gherkin to manage microservice local testing

Testing / Mocking

  • RequestBin

    Inspect and debug webhook requests sent by your clients or third-party APIs

  • httpbin

    HTTP request and response service - a/k/a Swiss Army Knife for HTTP

  • FakeRest

    Patch XMLHttpRequest to fake a REST API client-side

  • json-server

    Serve a REST API from fixture files using quick prototyping

  • Mocky.io

    Free online service to create fake HTTP responses

  • MockServer

    Easy mocking of any system you integrate with via HTTP or HTTPS

  • Request Baskets

    Service to collect HTTP requests and inspect them via RESTful API or web UI

  • DuckRails

    Mock quickly & dynamically API endpoints

  • Mockoon

    Easily create mock APIs locally. No remote deployment, no account required, open source

  • Mockintosh

    A mock server generator that's capable to generate RESTful APIs and communicate with the message queues to mimick asynchronous tasks

Testing / Validating

  • JSON Schema

    Declarative language that allows you to annotate and validate JSON documents

Testing / Public REST APIs To Use In Tests

  • Deck of Cards API

    Open API for simulating a deck of cards

  • Public APIS

    Explore The Largest API Directory In The Galaxy

  • Marvel Comics API

    Query characters, stories, events about Marvel superheroes

  • JSON Placeholder

    Free online REST service that you can use whenever you need some fake data

  • APIs.guru

    Wikipedia for Web APIs, each API has OpenAPI/Swagger description

  • The Cat API

    Public API for Cats Images, Facts and Jokes

  • Mockae

    Fake REST API powered by Lua

Documentation

  • Swagger

    Documentation/querying web interface for REST APIs

  • API doc

    Inline Documentation for RESTful web APIs

  • raml2html

    Generates HTML documentation from a RAML file

  • ReDoc

    OpenAPI/Swagger-powered three-panel documentation

  • Slate

    Beautiful and responsive three-panel API documentation using Middleman

  • Optic

    Maintain an accurate API specification without writing OpenAPI/Swagger. Works with any Stack

API Gateway

  • Kong

    Scalable, distributed, and plugin oriented API gateway backed by Nginx

  • Tyk API Gateway

    Lightweight API gateway with analytics logging, written in Go

  • API Umbrella

    API management platform for exposing web services, with web interface and analytics, written in Lua

  • WSO2 API Management

    API management tool with lightweight gateway and API lifecycle management, written in Java

  • Express Gateway

    Microservices API Gateway built on top of ExpressJS (Node.js)

  • KrakenD

    Ultra performant API Gateway with middleware. Written in Go

  • AWS API Gateway

    Fully managed service that helps developers to create, publish, maintain, monitor, and secure APIs at any scale

SaaS Tools

  • Nango

    Native integrations framework to consume REST APIs (open-source)

  • Runscope

    Automated API Monitoring & Testing

  • Ping-API

    Automated API Monitoring & Testing

  • Apiary

    Collaborative design, instant API mock, generated documentation, integrated code samples, debugging and automated testing

  • Amazon API Gateway

    Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale

  • Apigee

    Apigee is the leading provider of API technology and services for enterprises and developers

  • 3scale

    Nginx based API gateway to integrate internal and external API services with 3scale's API Management Platform

  • Assertible

    Continuously test and monitor your APIs after deployments and across environments

  • Moesif

    API Analytics for Debugging, Monitoring, and Usage Tracking for RESTful and GraphQL

  • Beeceptor

    An HTTP inspecting, mocking and proxing service. Gives named endpoints for creating mock API endpoints and simulate responses

Miscellaneous

  • react-admin

    Add a ReactJS admin GUI to any RESTful API

  • ng-admin

    Add an AngularJS admin GUI to any RESTful API

  • swagger-codegen

    Auto generation of client libraries or server stubs given an OpenAPI specification (formerly known as the Swagger Specification)

  • Lumber

    Generate the admin interface of your application

  • Linx

    Low-code API platform. Build, debug and host REST APIs

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.