OpenAPI Support Matrix
The tables below give an overview of what we support from OpenAPI.
✅ Server Configuration
Name | Notes | Swagger Link | Support |
---|---|---|---|
ServerURL config | Global and per-method (include base URL and templating) | api-host-and-base-path (opens in a new tab) | ✅ |
Authentication and security | Global and per-method | authentication (opens in a new tab) | ✅ |
Method generation | ✅ | ||
Model generation | Request and response | ✅ |
⚠️ Path Parameters Serialization (path-parameters (opens in a new tab))
Name | Notes | Swagger Link | Support |
---|---|---|---|
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))
Name | Notes | Swagger Link | Support |
---|---|---|---|
json | ✅ | ||
form | ✅ | ||
spaceDelimited | ✅ | ||
pipeDelimited | ✅ | ||
deepObject | ✅ | ||
Basic types | ✅ | ||
Simple objects | ✅ |
✅ Request Headers (header (opens in a new tab))
Name | Notes | Swagger Link | Support |
---|---|---|---|
Simple (explode = true) | ✅ | ||
Simple (explode = false) | ✅ |
⚠️ Request Body Serialization
Name | Notes | Swagger Link | Support |
---|---|---|---|
Multipart encoding | multi-part requests (opens in a new tab) | ✅ | |
Binary | ✅ | ||
Form data | ✅ | ||
JSON | Both application/json and text/json | ✅ | |
x-www-form-urlencoded | Including encoding, but not non-object types | describing-request-body (opens in a new tab) | ⚠️ |
Plain text | ✅ | ||
Raw byte | ✅ | ||
Handling required body | ✅ | ||
XML | ❌ | ||
Other media types | ❌ |
⚠️ Response Body Deserialization
Name | Notes | Swagger Link | Support |
---|---|---|---|
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
Name | Notes | Swagger Link | Support |
---|---|---|---|
Basic types | data-models/data-types (opens in a new tab) | ✅ | |
Enums | ✅ | ||
Number formats | float, double, int32, int64 | ✅ | |
Date-time | ✅ | ||
Binary | ✅ | ||
Arrays | ✅ | ||
Objects | ✅ | ||
Optional | ✅ | ||
Maps | ✅ | ||
Any type | ✅ | ||
OneOf/AnyOf/AllOf | oneof-anyof-allof-not (opens in a new tab) | ⚠️ See union type support below |
✅ Union Types
Name | Notes | Language Support |
---|---|---|
oneOf | For languages we haven't yet developed native Union type support for. oneOf will be treated as an any type. | ✅ TS, Python, Go |
allOf | To 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 |
anyOf | anyOf is treated as oneOf to avoid the bloat of combinatorial data type creation. | ✅ TS, Python, Go |
✅ Miscellaneous
Name | Notes | Swagger Link | Support |
---|---|---|---|
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.