Skip to content

Latest commit

 

History

History
353 lines (289 loc) · 12.3 KB

redoc-vendor-extensions.md

File metadata and controls

353 lines (289 loc) · 12.3 KB

Redoc vendor extensions

You can use the following vendor extensions with Redoc.

Swagger Object

Extends the OpenAPI root OpenAPI Object

x-servers

Backported from OpenAPI 3.0 servers. Currently doesn't support templates.

x-tagGroups

Field Name Type Description
x-tagGroups [ Tag Group Object ] A list of tag groups

How to use with Redoc

x-tagGroups is used to group tags in the side menu. Before you use x-tagGroups, make sure you add all tags to a group, since a tag that is not in a group, is not displayed at all!

Tag Group Object

Information about tags group

Fixed fields
Field Name Type Description
name string The group name
tags [ string ] List of tags to include in this group

x-tagGroups example

json

{
  "x-tagGroups": [
    {
      "name": "User Management",
      "tags": ["Users", "API keys", "Admin"]
    },
    {
      "name": "Statistics",
      "tags": ["Main Stats", "Secondary Stats"]
    }
  ]
}

yaml

x-tagGroups:
  - name: User Management
    tags:
      - Users
      - API keys
      - Admin
  - name: Statistics
    tags:
      - Main Stats
      - Secondary Stats

Info Object

Extends the OpenAPI Info Object

x-logo

Field Name Type Description
x-logo Logo Object The information about API logo

How to use with Redoc

x-logo is used to specify API logo. The corresponding image is displayed just above the side-menu.

Logo Object

The information about API logo

Fixed fields

Field Name Type Description
url string The URL pointing to the spec logo. MUST be in the format of a URL. It SHOULD be an absolute URL so your API definition is usable from any location
backgroundColor string background color to be used. MUST be RGB color in [hexadecimal format] (https://en.wikipedia.org/wiki/Web_colors#Hex_triplet)
altText string Text to use for alt tag on the logo. Defaults to 'logo' if nothing is provided.
href string The URL pointing to the contact page. Default to 'info.contact.url' field of the OAS.

x-logo example

json

{
  "info": {
    "version": "1.0.0",
    "title": "Swagger Petstore",
    "x-logo": {
      "url": "https://redocly.github.io/redoc/petstore-logo.png",
      "backgroundColor": "#FFFFFF",
      "altText": "Petstore logo"
    }
  }
}

yaml

info:
  version: "1.0.0"
  title: "Swagger Petstore"
  x-logo:
    url: "https://redocly.github.io/redoc/petstore-logo.png"
    backgroundColor: "#FFFFFF"
    altText: "Petstore logo"

Tag Object

Extends the OpenAPI Tag Object

x-traitTag

Field Name Type Description
x-traitTag boolean In Swagger two operations can have multiple tags. This property distinguishes between tags that are used to group operations (default) from tags that are used to mark operation with certain trait (true value)

How to use with Redoc

Tags that have x-traitTag set to true are listed in the side-menu but don't have any subitems (operations). It also renders the description tag. This is useful for handling out common things like Pagination, Rate-Limits, etc.

x-traitTag example

json

{
    "name": "Pagination",
    "description": "Pagination description (can use markdown syntax)",
    "x-traitTag": true
}

yaml

name: Pagination
description: Pagination description (can use markdown syntax)
x-traitTag: true

x-displayName

Field Name Type Description
x-displayName string Defines the text that is used for this tag in the menu and in section headings

Operation Object vendor extensions

Extends the OpenAPI Operation Object

x-codeSamples

Field Name Type Description
x-codeSamples [ Code Sample Object ] A list of code samples associated with operation

How to use with Redoc

x-codeSamples are rendered on the right panel in Redoc.

Code Sample Object

Operation code sample

Fixed fields

Field Name Type Description
lang string Code sample language. Value should be one of the following list
label string? Code sample label, for example Node or Python2.7, optional, lang is used by default
source string Code sample source code

Code Sample Object example

json

{
  "lang": "JavaScript",
  "source": "console.log('Hello World');"
}

yaml

lang: JavaScript
source: console.log('Hello World');

x-badges

Field Name Type Description
x-badges [Badge Object] A list of badges associated with the operation

Parameter Object

Extends the OpenAPI Parameter Object

x-examples

Field Name Type Description
x-examples Example Object Object that contains examples for the request. Applies when in is body and mime-type is application/json

How to use with Redoc

x-examples are rendered in the JSON tab on the right panel in Redoc.

Response Object vendor extensions

Extends the OpenAPI Response Object.

x-summary

Field Name Type Description
x-summary string a short summary of the response

How to use with Redoc

If specified, you can use x-summary as the response button text, with description rendered under the button.

Schema Object

Extends the OpenAPI Schema Object

x-nullable

Field Name Type Description
x-nullable boolean marks schema as a nullable

How to use with Redoc

Schemas marked as x-nullable are marked in Redoc with the label Nullable.

x-additionalPropertiesName

Attention: This is a Redoc-specific vendor extension, and is not supported by other tools.

Extends the additionalProperties property of the schema object.

Field Name Type Description
x-additionalPropertiesName string descriptive name of additional properties keys

How to use with Redoc

Redoc uses this extension to display a more descriptive property name in objects with additionalProperties when viewing the property list with an object.

x-additionalPropertiesName example

Player:
  required:
  - name

  properties:
    name:
      type: string

  additionalProperties:
    x-additionalPropertiesName: attribute-name
    type: string

x-explicitMappingOnly

Attention: This is Redoc-specific vendor extension, and is not supported by other tools.

Extends the discriminator property of the schema object.

Field Name Type Description
x-explicitMappingOnly boolean limit the discriminator selectpicker to the explicit mappings only

How to use with Redoc

Redoc uses this extension to filter the discriminator mappings shown in the selectpicker. When set to true, the selectpicker lists only the explicitly defined mappings. When false, the default behavior is kept, in other words, explicit and implicit mappings are shown.

x-explicitMappingOnly example

Pet:
  type: object
  required:
    - name
    - photoUrls
  discriminator:
    propertyName: petType
    x-explicitMappingOnly: true
    mapping:
      cat: "#/components/schemas/Cat"
      bee: "#/components/schemas/HoneyBee"

Shows in the selectpicker only the items cat and bee, even though the Dog class inherits from the Pet class.

x-enumDescriptions

Field Name Type Description
x-enumDescriptions [Enum Description Object] A list of the enum values and descriptions to include in the documentation.

How to use with Redoc

The enum (short for "enumeration") fields in OpenAPI allow you to restrict the value of a field to a list of allowed values. These values need to be short and machine-readable, but that can make them harder for humans to parse and work with.

Add x-enumDescriptions to your OpenAPI description to show a helpful table of enum options and an explanation of what each one means. This field supports Markdown.

x-enumDescriptions example

The following example shows a schema with two short-named options, and the x-enumDescriptions entry to list all enum entries and give additional context for each:

components:
  schemas:
    TicketType:
      description: Type of ticket being purchased. Use `general` for regular museum entry and `event` for tickets to special events.
      type: string
      enum:
        - event
        - general
      x-enumDescriptions:
        event: Event Tickets _(timed entry)_
        general: General Admission
      example: event