Adapter to publish Open API specification files to a Revelio site.
revelio-openapi <path_to_configuration_file> <revelio_url> [configuration_name] [options]
path_to_configuration_file
- File path to your configuration filerevelio_url
- URL of your Revelio installationconfiguration_name
(optional) - Name of the configuration to useoptions
--publicKey <publicKey>
- Public API key. Only necessary if your Revelio server requires API key authentication--secretKey <secretKey>
- Secret API key. Only necessary if your Revelio server requires API key authentication
In order to publish documentation to Revelio, you need to create a Revelio configuration file. This contains information about how to read documentation from your code and how it should be shown in Revelio.
{
"url": "http://myapiurl.com",
"target": "./myOpenApiSpec.yml",
"path": "Sample Group/My API/QA/v1.2.3"
}
{
"target": "./myOpenApiSpec.yml",
"configurations": {
"DEV": {
"url": "http://dev.myapiurl.com",
"path": "Sample Group/My API/DEV/v1.2.3"
},
"QA": {
"url": "http://qa.myapiurl.com",
"path": "Sample Group/My API/QA/v1.2.3"
},
"PROD": {
"url": "http://myapiurl.com",
"path": "Sample Group/My API/PROD/v1.2.3"
}
}
Revelio will attempt to use the optional operationId
field for the endpoint name. If it you prefer to use a different
name, you can specify it with the x-name
extension. If neither field is provided, Revelio will
generate a name based off the path and method. For example, GET /person/{personId}
would have the name "Get Person". In most cases this is acceptable, but for endpoints like GET /person/byName
it breaks down.
You can add examples to parameters and properties by using the x-examples
extension.
parameters:
- in: query
name: firstName
type: string
x-examples:
- Mark
- Bob
- Lucius
Revelio will use the example
field for simple types
name:
type: string
example: doggie
# Adds "doggie" as an example for "name"
It will also use the example
field for complex types
type: object
properties:
id:
type: integer
format: int64
name:
type: string
example:
name: Puma
id: 1
# Adds "Puma" as an example for "name", and "1" as an example for "id"
All of these approaches will be combined into a single list of examples per property
Any extension items that aren't already used for other purposes (e.g. x-examples
and x-name
)
will be added as metadata for endpoints, parameters, and properties. See examples/withMetadata.yml
for reference.
Please note that not all components of the specification are included in Revelio. We've aimed to include the pieces that fit the existing Revelio product. Let us know if you would like additional support added.