Specification · JSON Structure

Specification Structure

Structure of the API specification ecosystem, showing format categories and their relationships

Type: taxonomy Properties: 0
API DesignAPI GovernanceAsyncAPIContract TestingJSON SchemaOpenAPISpecificationsStandards

API Specification Landscape is a JSON Structure definition published by Specification.

Meta-schema:

JSON Structure

specification-structure.json Raw ↑
{
  "name": "API Specification Landscape",
  "description": "Structure of the API specification ecosystem, showing format categories and their relationships",
  "type": "taxonomy",
  "categories": [
    {
      "name": "HTTP API Specifications",
      "description": "Formats for describing synchronous HTTP/REST APIs",
      "formats": [
        {
          "name": "OpenAPI",
          "versions": ["2.0", "3.0", "3.1"],
          "maintainer": "OpenAPI Initiative (Linux Foundation)",
          "url": "https://www.openapis.org/",
          "primary_use": "REST API description, documentation, code generation"
        },
        {
          "name": "RAML",
          "versions": ["0.8", "1.0"],
          "maintainer": "MuleSoft",
          "primary_use": "REST API design (largely superseded by OpenAPI)"
        },
        {
          "name": "API Blueprint",
          "versions": ["1A"],
          "maintainer": "Apiary / Oracle",
          "primary_use": "REST API documentation (largely superseded)"
        }
      ]
    },
    {
      "name": "Async and Event-Driven Specifications",
      "description": "Formats for describing asynchronous, event-driven, and message-based APIs",
      "formats": [
        {
          "name": "AsyncAPI",
          "versions": ["2.0", "2.6", "3.0"],
          "maintainer": "AsyncAPI Initiative",
          "url": "https://www.asyncapi.com/",
          "primary_use": "Kafka, AMQP, MQTT, WebSocket, SNS/SQS event streams"
        }
      ]
    },
    {
      "name": "Schema Specifications",
      "description": "Data schema and validation formats",
      "formats": [
        {
          "name": "JSON Schema",
          "versions": ["Draft 4", "Draft 6", "Draft 7", "2019-09", "2020-12"],
          "maintainer": "JSON Schema Organization",
          "url": "https://json-schema.org/",
          "primary_use": "Data validation, API request/response schemas"
        }
      ]
    },
    {
      "name": "Workflow and Multi-Step Specifications",
      "description": "Formats for describing multi-operation API sequences",
      "formats": [
        {
          "name": "Arazzo",
          "versions": ["1.0"],
          "maintainer": "OpenAPI Initiative",
          "url": "https://spec.openapis.org/arazzo/latest.html",
          "primary_use": "API workflow sequences, contract testing"
        }
      ]
    },
    {
      "name": "RPC and Binary Specifications",
      "description": "Formats for describing RPC and binary protocol APIs",
      "formats": [
        {
          "name": "Protocol Buffers (proto3)",
          "versions": ["proto3"],
          "maintainer": "Google",
          "primary_use": "gRPC API definitions"
        },
        {
          "name": "GraphQL SDL",
          "versions": ["June 2018"],
          "maintainer": "GraphQL Foundation",
          "primary_use": "GraphQL type system and query definitions"
        }
      ]
    }
  ]
}