Advanced Features
Support for advanced OpenAPI features
OpenAPI 3 has some advanced features for describing complex APIs. Here’s how you can use them with Mintlify.
oneOf
, anyOf
, allOf
For complex datatypes, OpenAPI provides the oneOf
, anyOf
, and allOf
keywords, allowing you to combine schemas in certain ways. You can read more about these keywords in the Swagger documentation, but essentially:
oneOf
functions like an “exclusive-or” operatoranyOf
functions like an “or” operatorallOf
functions like an “and” operator
oneOf
and anyOf
keywords the same. We have found that, when people use oneOf
, they often mean anyOf
- and there is often no meaningful difference to the user.not
keyword.Combining schemas with allOf
Mintlify performs some preprocessing on your OpenAPI document to display these complex combinations in a readable way. For example, when you combine two object schemas with allOf
, Mintlify combines the properties of both into a single object. This becomes especially useful when leveraging OpenAPI’s reusable components
.
Providing options with oneOf
and anyOf
When you use oneOf
or anyOf
, Mintlify displays the options in a tabbed container. To give your options helpful names, make sure to give each subschema a title
field. For example, here’s how you might display two different types of delivery addresses:
x-codeSamples
If your users interact with your API using an SDK rather than directly through a network request, you can add code samples to your OpenAPI document, and Mintlify will display them in your OpenAPI pages. You can define your code samples using the x-codeSamples
extension. This property can be added within any request method, and has the following schema:
The language of the code sample.
The label for the sample. This is useful when providing multiple examples for a single endpoint.
The source code of the sample.
Here’s an example of some code samples for a plant tracking app, which has both a Bash CLI tool and a JavaScript SDK.
Was this page helpful?