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 peter@corenova.com anytime with questions, suggestions, etc.