This repository contains a node implementation that converts a RAML data type into JSON schema, and back.
npm install -g ramldt2jsonschema
This will install two command-line tools:
dt2js: RAML data type <> JSON schemajs2dt: JSON schema <> RAML data type
dt2js <ramlFile> <ramlTypeName>
Options
<ramlFile>Path to a file containing at least one RAML data type (e.g.path/to/api.raml)<ramlTypeName>RAML type name to convert to JSON schema
js2dt <jsonFile> <ramlTypeName>
Options
<jsonFile>Path to a JSON schema file (e.g.path/to/schema.json)<ramlTypeName>RAML type name to give to the exported RAML data type
npm install ramldt2jsonschema --save
var raml2json = require('ramldt2jsonschema')
var join = require('path').join
var fs = require('fs')
var filePath = join(__dirname, 'api.raml')
var ramlData = fs.readFileSync(filePath).toString()
raml2json.dt2js(ramlData, 'Cat', function (err, schema) {
if (err) {
console.log(err)
return
}
console.log(JSON.stringify(schema, null, 2))
})var raml2json = require('ramldt2jsonschema')
var join = require('path').join
var fs = require('fs')
var filePath = join(__dirname, 'schema.json')
var jsonData = fs.readFileSync(filePath).toString()
raml2json.js2dt(jsonData, 'Person', function (err, raml) {
if (err) {
console.log(err)
return
}
console.log('#%RAML 1.0 Library\n')
console.log(raml)
})-
in js2dt,
- the following JSON schema properties are not supported and as a result, will not be converted:
format,title,not- number and integer's
exclusiveMaximumandexclusiveMinimum - object's
patternPropertiesanddependencies - array's
additionalItems
- the JSON schema
oneOfproperty is processed the same way as the JSON schemaanyOfproperty, it is converted to the RAMLuniontype - the JSON schema
type: 'string'withmediaandbinaryEncoding: 'binary'is converted to the RAMLfiletype - the JSON schema
type: stringwith apatternthat matches exactly one of the RAML date types will be converted in the matching RAML date type - the JSON schema
mediaproperty withanyOf, elements of which have the propertymediaTypewill be converted tofileTypesin RAML
- the following JSON schema properties are not supported and as a result, will not be converted:
-
in dt2js,
- the following RAML properties are not supported/converted:
- pattern properties, annotations
displayName
- the following RAML properties are not supported/converted:
Apache 2.0