HTTP Bindings

January 30, 2024 ยท View on GitHub

This document defines how to describe HTTP-specific information on AsyncAPI.

Version

Current version is 0.3.0.

Server Binding Object

This object MUST NOT contain any properties. Its name is reserved for future use.

Channel Binding Object

This object MUST NOT contain any properties. Its name is reserved for future use.

Operation Binding Object

Fixed Fields
Field NameTypeDescription
methodstringThe HTTP method for the request. Its value MUST be one of GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, CONNECT, and TRACE.
querySchema Object | Reference ObjectA Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.
bindingVersionstringThe version of this binding. If omitted, "latest" MUST be assumed.

This object MUST contain only the properties defined above.

Example
channels:
  employees:
    address: /employees
operations:
  employees:
    action: send
    bindings:
      http:
        method: GET
        query:
          type: object
          required:
            - companyId
          properties:
            companyId:
              type: number
              minimum: 1
              description: The Id of the company.
          additionalProperties: false
        bindingVersion: '0.3.0'

Message Binding Object

This object contains information about the message representation in HTTP.

Fixed Fields
Field NameTypeDescription
headersSchema Object | Reference ObjectA Schema object containing the definitions for HTTP-specific headers. This schema MUST be of type object and have a properties key.
statusCodenumberThe HTTP response status code according to RFC 9110. statusCode is only relevant for messages referenced by the Operation Reply Object, as it defines the status code for the response. In all other cases, this value can be safely ignored.
bindingVersionstringThe version of this binding. If omitted, "latest" MUST be assumed.

This object MUST contain only the properties defined above.

channels:
  test:
    address: /test
    messages:
      testMessage:
        bindings:
          http:
            statusCode: 200
            headers:
              type: object
              properties:
                Content-Type:
                  type: string
                  enum: ['application/json']
            bindingVersion: '0.3.0'