Skip to content

Web API

September 29, 2023
November 19, 2015

restful-api
http-agents
rpc

graphql

GraphQL provides discoverability and playground

TODO: migrates ~/web/http/api and ~/web/http/api-spec here

5 Protocols For Event-Driven API Architectures | Nordic APIs |

Just Because Github Has a GraphQL API Doesn’t Mean You Should Too | ProgrammableWeb

How to Achieve API Governance - The New Stack
Best Practices for API Error Handling | Nordic APIs |
Building API Services: A Beginner’s Guide – Google Cloud Platform - Community – Medium ❗!important, covers REST and gRPC

API Stylebook
API Handyman

To Create An Evolvable API, Stop Thinking About URLs

Evolving a Company's IS in the Lego Computing Age: How to Choose a Brick Product | Nordic APIs |
API strategy best practices, advice & guidance from LEGO

Comparison

A Guide to the Most Popular Types of APIs: REST, SOAP, GraphQL, and gRPC - DEV Community 👩‍💻👨‍💻

GraphQL, tRPC, REST and more - Pick Your Poison - YouTube
GraphQL vs REST: What's The Difference And When To Use Which? - YouTube
REST vs RPC vs GraphQL API - How do I pick the right API paradigm? - YouTube

GraphQL vs REST: What's The Difference And When To Use Which? - YouTube

Tips and tricks

API Design Tips And Tricks - Getting, creating, updating or deleting multiple resources in one API call | API Handyman
Tips and Tools for Debugging APIs | Nordic APIs |

Virtualization, Sandboxes, and Playgrounds for a Wholesome API | Nordic APIs |

API meshing

API Marketplace - Free Public & Open Rest APIs | RapidAPI

RapidAPI's RapidQL, an Open Source Query Language for APIs and Databases - The New Stack

Gravitee.io - API Management Platform

My Applets - IFTTT

Combine APIs into one GraphQL endpoint.

NoCodeAPI — The easiest way to connect with APIs without code

Simperium: A cross-platform data sync service. powers Simplenote

Testing APIs

API tooling development: GraphQL, OpenAPI | APIs.guru
7 cool APIs you didn't know you needed - Twilio
Python & APIs: A Winning Combo for Reading Public Data – Real Python DogAPI
johnwmillr/list-of-python-api-wrappers: List of Python API Wrappers and Libraries
public-apis/public-apis: A collective list of free APIs
abhishekbanthia/Public-APIs: 📚 A curated list of APIs from round the web.

Deck of Cards API
Diceful API
SWAPI - The Star Wars API with search
PokéAPI
Jikan - Unofficial MyAnimeList API
ipapi - IP Address Lookup and Geolocation API | No SignUp
Random Useless Facts
Country Data API • That API Company API Portal • Blobr
REST Countries
The Dog API - Dogs as a Service Postman
The Cat API - Cats as a Service. Postman
JSONPlaceholder - Free Fake REST API


Specification

There Are Four API Design Editors To Choose From Now
Choosing the right format | Apiary Help
Top Specification Formats for REST APIs | Nordic APIs |
Tools to generate beautiful web API documentation | Matt Silverman
Documenting REST APIs | I'd Rather Be Writing
Documenting APIs when Preferences Matter - via @codeship | via @codeship
Testing Code Examples in Documentation - via @codeship | via @codeship

apiDoc - Inline Documentation for RESTful web APIs
mapbox/docbox: REST API documentation generator
Wiredcraft/carte: Simple Jekyll-based documentation site for APIs.

dropbox/stone: Write your APIs in stone. also generates skeleton

Dredd
Dredd is a language-agnostic command-line tool for validating API description document against backend implementation of the API.

ReadMe

hapi#docs

Swagger/OpenAPI

Swagger | The World's Most Popular Framework for APIs.
backed by Wordnik, then donated to Open API Initiative in 2016.

Swagger Specification
A Guide to What’s New in OpenAPI 3.0 | Swagger ❗!important
TDC: Structural Improvements: explaining the 3.0 spec, part 2 - OpenAPI Initiative
OpenAPI Map visualize the OpenAPI spec (2 and 3)

APIs-guru/awesome-openapi3: 😎 A list of awesome projects related to OpenAPI 3.0.x, curated by the community
OpenAPI.Tools - an Open Source list of great tools for Open API

OAI/OpenAPI-Specification: The OpenAPI Specification Repository
The OpenAPI Spec, Based on Swagger, Reaches 3.0
Documenting APIs: A guide for technical writers and engineers | Documenting REST APIs
octokit/routes: machine-readable, always up-to-date GitHub REST API route specifications

OpenAPI 3.0, And What it Means for the Future of Swagger - YouTube
OpenAPI 3.0: How to Design and Document APIs with the Latest OpenAPI Specification 3.0 - YouTube
Swagger - YouTube

10 realizations as I was creating my Swagger spec and Swagger UI | I'd Rather Be Writing

Writing OpenAPI (Swagger) Specification Tutorial - Part 1 - Introduction | API Handyman Swagger 2.0, part 1-9

Examples

Mermade/openapi_specifications: Open API Specifications
Mermade/openapi3-examples: Passing and failing test cases for OpenAPI 3.0.x validators
APIs-guru/openapi-directory: Wikipedia for Web APIs. Directory of REST API specs in OpenAPI(fka Swagger) 2.0 format.

Use allOf to create mixins of definition:
http://stackoverflow.com/questions/30895944/how-to-make-a-field-in-a-definition-required-for-some-operations-and-not-others

Ansible Semaphore Generated UI

Tools

OpenAPI Tools
OpenAPITools/openapi-generator: OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
OpenAPITools/openapi-style-validator: A customizable style validator to make sure your OpenAPI spec follows your organization's standards.

The Swagger Core Tools
Swagger Editor | Swagger Documentation | Swagger
Swagger UI |Swagger Documentation | Swagger
Swagger Codegen | Swagger Documentation | Swagger
Open Source Integrations

Swagger Editor

swaggerapi's Profile - Docker Hub
swaggerapi/swagger-editor - Docker Hub

docker run --rm -v ${PWD}:/local \
  swaggerapi/swagger-codegen-cli-v3 generate \
  -i /local/api.yaml \
  -l html \
  -o /local/out/api_html

Swagger & OpenAPI Online Validator | Swagger Parser
These tools can validate and bundle multi-files spec.
APIDevTools/swagger-cli: Swagger 2.0 and OpenAPI 3.0 command-line tool Express middleware
APIDevTools/swagger-parser: Swagger 2.0 and OpenAPI 3.0 parser/validator
apigee-127/sway: A library that simplifies OpenAPI (fka Swagger) integrations.

ReDoc Interactive Demo
Redocly/redoc: 📘 OpenAPI/Swagger-generated API Reference Documentation
redoc/README.md at main · Redocly/redoc redoc-cli bundle your docs into zero-dependency HTML file

openapi-typescript vs swagger-typescript vs swagger-typescript-api vs ts-json-schema-generator vs typescript-json-schema | npm trends
drwpow/openapi-typescript: Generate TypeScript types from OpenAPI 3 specs
acacode/swagger-typescript-api: TypeScript API generator via Swagger scheme
hosseinmd/swagger-typescript: An auto typescript/javascript code generator from swagger.

getkin/kin-openapi: OpenAPI 3.0 (and Swagger v2) implementation for Go (parsing, converting, validation, and more)

go-swagger toolkit source 2.0
apigee-127/swagger-tools: A Node.js and browser module that provides tooling around Swagger. 1.2 and 2.0
apigee-127/swagger-test-templates: Test code generated from Swagger 2.0

bootprint/bootprint: Converts json into a static html page using Handlebars and Bootstrap DEPRECATED
bootprint/bootprint-openapi: Bootprint-module to render OpenAPI specifications 2.0

Mermade/openapi_optimise: Optimise OpenApi (Swagger) 2.0 API definitions
Tufin/oasdiff: A diff tool for OpenAPI Specification 3

AsyncAPI

AsyncAPI Initiative for event-driven APIs
Introduction | AsyncAPI Initiative for event-driven APIs

RAML

RAML - RESTful API modeling language backed by Mulesoft
raml-spec-raml-10.md at master · raml-org-raml-spec · GitHub

raml-org/raml-tutorial: This repository contains the content for the RAML tutorial on raml.org.

Examples

RAML APIs

Tools

API Design Tooling From RAML

API Workbench

cybertk-abao: REST API automated testing tool based on RAML
farolfo-raml-server: run a mocked server JUST based on a RAML API's definition .. zero coding
gextech-raml-mockup: Express-based mocking service for RAML development
Letsdeal-raml1-doc: Generate HTML doc for REST API using RAML
mulesoft-api-designer: A web editor for creating and sharing RAML API specifications
mulesoft-raml-client-generator: Template-driven generator of clients for APIs described by a RAML spec
PGSSoft-ramlo: Documentation generator for RAML 1.0
raml2html html documentation generator from raml file source
raml2html/raml2html: RAML to HTML documentation generator.
raml-org/ramldt2jsonschema: This repository contains a node implementation that converts a RAML data type into JSON schema, and back.
repocho-raml-mocker: Node module to create random responses to requests based on RAML rest definition.

API Blueprint

API Blueprint - API Documentation with powerful tooling backed by Apiary

API Blueprint Specification | API Blueprint
MSON Specification | API Blueprint

API Blueprint tutorial | Apiary Help
API Blueprint Has Been Evolving In Two Critical Areas Where OpenAPI Spec (aka Swagger) Falls Significantly Short
This Is Going to Be Awesome—Apiary Blog

Tools

API Blueprint Tools | API Blueprint
Dredd — HTTP API Testing Framework takes .apib and generate tests

APIs.json

APIs.json

The APIs.json Discovery Format: Potential Engine in the API Economy

JSON API

JSON API — A specification for building APIs in JSON
Introduction to the JSON API - Laravel News

JSON API — Implementations

Slate

lord/slate: Beautiful static documentation for your API
Shows sidebar for invocation from shell or client SDK in various language.

Mermade/shins: Shins Is Not Slate port of Slate to JS
Mermade/widdershins: OpenApi / Swagger, AsyncApi & Semoasa definitions to Slate / Shins compatible markdown

DocuAPI Example Site port of Slate to Hugo (Go)