Git Product home page Git Product logo

awesome-api's Introduction

Awesome API Awesome Build Status Donate

A curated list of awesome resources for design and implement RESTful APIs.

Design

Overview

REST allows us to create services and applications that can be used by any device or client who understands HTTP.

Status Code

When you are using a REST design you have to provide the HTTP status code that are the more appropriated to respond to the request.

Authentication

JWT

JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.

Authorization

OAuth

An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications

Security

Format

  • HAL - Simple format that gives a consistent and easy way to hyperlink between resources in your API (see: HATEOAS).
  • Hydra - Vocabulary for Hypermedia-Driven Web APIs (W3C).
  • JSend - Simple specification that lays down some rules for how JSON responses from web servers should be formatted.
  • JSON API - Standard for building APIs in JSON.
  • JSON-LD - Standard for describing Linked Data and hypermedia relations in JSON (W3C).
  • OData - Open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs. Quite complex.
  • RAML - Simple and succinct way to describe RESTful API.
  • Schema.org - Collection of schemas describing common data models.

Discover

Need a API for your projects?

Testing

Querying

  • httpie - Command line HTTP client, far more dev-friendly than curl.
  • HttpMaster - GUI tool for testing REST APIs and services. Windows OS only.
  • jq - Command line JSON processor, to use in combination with a command-line HTTP client like cURL.
  • Postman REST Client - Chrome extension essential to test manually REST API.
  • resty - Little command line REST client that you can use in pipelines (bash or zsh).

Mocking

  • FakeRest - Patch XMLHttpRequest to fake a REST API client-side.
  • JSON Placeholder - Free online REST service that you can use whenever you need some fake data.
  • json-server - Serve a REST API from fixture files using quick prototyping.
  • Mocky.io - Free online service to create fake HTTP responses.
  • Swagger API Mock - Mock RESTful API based on swagger schema

Documentation

One of the most important part of your API is have a good documentation and updated with the code.

Free

Services

Logging

Modeling and SaaS

Based in DDD (Domain Driven Development). Generates automatically API's in different languages.

Libraries

Used it to improve your workflow

  • hello.js – A client-side Javascript SDK for authenticating with OAuth2.
  • nock – HTTP Server mocking for Node.js
  • node-ratelimiter – Rate limiter for Node.js backed by Redis.
  • node-uuid – Simple and fast generation of UUIDS.
  • Supertest – Super-agent driven library for testing HTTP servers.
  • Unirest – Lightweight HTTP Request Client Libraries.

Frameworks

Designed specifically for building RESTful API's Quickly.

Gateways

Manage API infrastructure concerns such as authentication/authorization, rate limiting, scaling, analytics, etc.

Open Source / Self-hosted

awesome-api's People

Contributors

dexterbt1 avatar ivangoncharov avatar kikobeats avatar lambda2 avatar pgericson avatar ryanccollins avatar sayanee avatar

Watchers

 avatar  avatar  avatar

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.