yang-swagger
v2.3.4
Published
YANG model-driven swagger/openapi transform
Downloads
211
Maintainers
Readme
yang-swagger
YANG model-driven swagger/openapi transform
Installation
$ npm install -g yang-swagger
The preferred installation is global for easy access to the
yang-swagger
utility but can also be used as a dependency module to
help generate swagger/openapi specification as part of your project.
NOTE: Currently, Swagger/OpenAPI 2.0 Specification does NOT support JSON-schema
anyOf
andoneOf
directives, which means that we cannot properly treat YANGchoice/case
statements during conversion. As a work-around, the current transform will simply serialize all configuration nodes from thechoice/case
sections into a flat list of properties.
Quick Start
$ yang-swagger -f yaml -o swagger.yaml yang-openapi
The above example will import the yang-openapi
YANG module and
transform into swagger specification YAML file.
Usage: yang-swagger [options] modules...
Options:
-c, --config <filename> Use <filename> to retrieve configuration data (default: uses 'config' directory)
-f, --format <string> Convert to YAML or JSON (default: json)
-o, --output <filename> Write to <filename> if specified, otherwise to console
Using the --config
option will allow you to specify where to find
the configuration data for the yang-openapi
YANG module. By default,
it will check the config
directory but you can specify any arbitrary
file location for specifying the yang-openapi:info
configuration
data.
You can also use it as a library module:
swag = require("yang-swagger").eval {
'yang-openapi:info':
title: "my-api"
description: "describe purpose"
version: "1.0"
contact:
name: "your name"
url: "http://some/website"
email: "your email"
license:
name: "Apache-2.0"
}
swag.in('transform')
.invoke modules: [ 'yang-openapi' ]
.then (output) ->
console.log "do something with <output.spec>"
For more information on programmatic usage, be sure to take a look at the References listed below.
References
License
This software is brought to you by Corenova Technologies. We'd love to hear your feedback. Please feel free to reach me at [email protected] anytime with questions, suggestions, etc.