OpenAPI Support Matrix

The tables below give an overview of what we support from OpenAPI.

✅ Server Configuration

NameNotesSwagger LinkSupport
ServerURL configGlobal and per-method (include base URL and templating)api-host-and-base-path (opens in a new tab)
Authentication and securityGlobal and per-methodauthentication (opens in a new tab)
Method generation
Model generationRequest and response

⚠️ Path Parameters Serialization (path-parameters (opens in a new tab))

NameNotesSwagger LinkSupport
Default(style = simple, explode = false)serialization/#path (opens in a new tab)
Basic types
Simple objects
label
matrix

⚠️ Query Parameters Serialization (query-parameters (opens in a new tab) & query (opens in a new tab))

NameNotesSwagger LinkSupport
json
form
spaceDelimited
pipeDelimited
deepObject
Basic types
Simple objects

✅ Request Headers (header (opens in a new tab))

NameNotesSwagger LinkSupport
Simple (explode = true)
Simple (explode = false)

⚠️ Request Body Serialization

NameNotesSwagger LinkSupport
Multipart encodingmulti-part requests (opens in a new tab)
Binary
Form data
JSONBoth application/json and text/json
x-www-form-urlencodedIncluding encoding, but not non-object typesdescribing-request-body (opens in a new tab)⚠️
Plain text
Raw byte
Handling required body
XML
Other media types

⚠️ Response Body Deserialization

NameNotesSwagger LinkSupport
Return StatusCode and Content-Type
JSON
Plain text
Raw byte
JSON
Other media types

✅ Media-Type Patterns (media-types (opens in a new tab))

✅ Datatypes

NameNotesSwagger LinkSupport
Basic typesdata-models/data-types (opens in a new tab)
Enums
Number formatsfloat, double, int32, int64
Date-time
Binary
Arrays
Objects
Optional
Maps
Any type
OneOf/AnyOf/AllOfoneof-anyof-allof-not (opens in a new tab)⚠️ See union type support below

✅ Union Types

NameNotesLanguage Support
oneOfFor languages we haven't yet developed native Union type support for. oneOf will be treated as an any type.✅ TS, Python, Go
allOfTo avoid construction of illogical types, Speakeasy currently constructs an object using the superset of fields from the listed schemas. In cases where the base schemas have a field name collision, Speakeasy will default to using the field from the object deepest in the list.✅ All languages
anyOfanyOf is treated as oneOf to avoid the bloat of combinatorial data type creation.✅ TS, Python, Go

✅ Miscellaneous

NameNotesSwagger LinkSupport
Auxiliary files*
x-speakeasy-server-id generation
Snippet generation
README generation
Documentation generation

* Utility classes and functions to help with serialization and deserialization.

* Files needed for creating a fully compilable package that can be published to the relevant package manager without further changes.