swaggerjsontoapidocs
v1.5.2
Published
script to convert swagger json to api docs, this help us to consume functions and center all endpoints in one place
Maintainers
Readme
swaggerjsontoapidocs CLI
This project is a Command Line Interface (CLI) tool that generates API documentation from a Swagger JSON file. It is developed in TypeScript and uses Node.js.
Installation
Make sure you have Node.js installed on your system. Then, install the project dependencies by running:
npm install swaggerjsontoapidocsnpm install swaggerjsontoapidocs -gUsage
The CLI script is executed using the following command:
npx swaggerjsontoapidocs [options]⚠️ Windows / Git Bash Tip:⚠️
Git Bash automatically converts root paths (like /api) to Windows paths (like C:...). To prevent this error, use the MSYS_NO_PATHCONV flag:
MSYS_NO_PATHCONV=1 npx swaggerjsontoapidocs [options]Available Arguments
-s, --swagger <url>: Specifies the URL of the Swagger JSON file.--bp <path>: Base path to remove from endpoints (e.g.,/api/).-o, --output <path>: Path to the output folder destination.--skip-folder: Generates flat files instead of nested folders.
Example Usage
npx swaggerjsontoapidocs -s http://localhost:5033/swagger/v1/swagger.json --bp /api/In this example:
-spoints to the URL of the Swagger JSON file.--bpdefines the base path/api/to be removed from the endpoints.
{
"openapi": "3.0.1",
"info": {
"title": "fakeApi",
"version": "1.0"
},
"paths": {
"/api/Users": {
"get": {
"tags": ["Users"],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Usuario"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Usuario"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Usuario"
}
}
}
}
}
}
}
},
"/api/Users/{id}": {
"get": {
"tags": ["Users"],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/Usuario"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/Usuario"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Usuario"
}
}
}
}
}
},
"post": {
"tags": ["Users"],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/Usuario"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/Usuario"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Usuario"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Usuario": {
"type": "object",
"properties": {
"id": {
"type": "string",
"nullable": true
},
"nombre": {
"type": "string",
"nullable": true
},
"email": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
}
}
}
}Result
├── api_docs
│ ├── Users
│ └── Users.ts// Users.ts
export const Users = () => `Users`;
/**
* @param id
*/
export const Users_id = (id: any) => `Users/${id}`;Advanced Usage
npx swaggerjsontoapidocs -s http://localhost:5033/swagger/v1/swagger.json --bp /api/ -o ./docs/ --skip-folderIn this example:
-ospecifies./docs/as the destination folder (resulting in./docs/api_docs).--skip-foldergenerates flat files (no nested folders).
Result --skip-folder
docs
└── api_docs
├── Users.ts
└── WeatherForecast.tsLicense
This project is licensed under the MIT License. See the LICENSE file for more details.
