0.0.1 • Published 7 years ago
swagger-json-filter v0.0.1
swagger-json-filter
Command-line tool for filtering documentation created with Swagger.
The filter matches all paths defined in the input JSON against the given regular expression. Definition of all paths that don't match given regex, are removed. In the second step tool filters all data structure definitions and removes all that are not used within the remaining part of the paths.
Usage
as node.js package
Install package for your project
npm install swagger-json-filter --save
then you can use the swagger-json-filter from a js code, providing the input JSON string and options of filtering:
const swaggerJsonFilter = require('swagger-json-filter');
const output = swaggerJsonFilter(inputJsonString, {
includePaths: "^\/estimates\/.*"
});
as command line tool
Install package globally
npm install -g swagger-json-filter
then you can provide contents of the above JSON file to the stdin:
cat input.json | swagger-json-filter --include-paths="^\/estimates\/.*" > output.json
input.json:
{
"swagger": "2.0",
"info": {"version": "0.0.0", "title": "Simple API"},
"paths": {
"/estimates/price": {
"get": {
"responses": {
"200": {
"description": "An array of price estimates by product",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/PriceEstimate"
}}}}}},
"/me": {
"get": {
"responses": {
"200": {
"description": "Unexpected error",
"schema": {
"$ref": "#/definitions/Error"
}}}}}
},
"definitions": {
"PriceEstimate": {
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "Unique identifier"
}}},
"Error": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
}}}
}
}
and we recive following output.json
{
"swagger": "2.0",
"info": {"version": "0.0.0", "title": "Simple API"},
"paths": {
"/estimates/price": {
"get": {
"responses": {
"200": {
"description": "An array of price estimates by product",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/PriceEstimate"
}}}}}}
},
"definitions": {
"PriceEstimate": {
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "Unique identifier"
}}}
}
}
Acknowledgements
Great thanks for Young Digital Planet for supporting creation of this tool.
0.0.1
7 years ago