This script is written in TypeScript
, it can generate all Models
and APIs
(serivces) in any kind of language.
Currently it exports to Angular 2
but you can create your own templates (check templates folder).
You can modify those files to adapt to your code.
It's planned for a future to let configure this script instead need to modify the source code.
npm i @protocolnebula/ts-openapi-generator
You need to copy "ApiBase" which is the "dependences" to work. This will be changed in a future and will not be required to be copied. You can just download
ApiBase
folder and save in your project in thesame folder that you will "output" the generated data
or copy with this command.
mkdir -p src/generatedApi
cp -r node_modules/ts-openapi-generator/ApiBase src/generatedApi/ApiBase
Is recommended to add a script to your package.json
or package manager that you use.
Change
src/generatedApi
by your desired folder to generate the code. If you not specifymock-output
,-o + mock/
will be used.
Note that
-t
(template) and--mock-engine
are optional, you can only use some of them.
transform-swagger \
-f URI/TO/SWAGGER/JSON/OR/YAML \
-o src/generatedApi/ \
-t angular2 \
--mock-engine json-server \
--mock-output path/to/mock
The settings of the config file are the same than cli one (but in
camelCase
).
We will use as example transfrom-config.json example's one.
{
"clean": true,
"file": "./examples/openApiFiles/passportescaperoom.com.json",
"outputFolder": "./examples/generated/angular2",
"template": "angular2",
"mock-generator": "json-server",
"mock-output": "examples/generated/mocks/json-server",
"saveFile": "./openApiFiles/passportescaperoom.com"
}
transform-swagger --config-file ./examples/transform-config.json
Usage: transform-swagger [options]
Options:
--version, -v Show version number [boolean]
--config-file Configuration file to use (values from cli will overwrite
this file).
--mock-generator Specify the generator to use to generate mocks. If none
provider, mocks will not be generated
--mock-output The path where mock will be generated. If no specified,
output-folder/mock will be used
--mock-partial If true, only mock data will be generated instead of all
files [boolean] [default: false]
--clean No clean the output-folder, so old files will remain
[boolean] [default: true]
-f, --file Path OR URL to the swagger document to parse [required]
-o, --output-folder Specify the output folder (generated folders will be
replaced) [default: "output"]
-t, --template Template (preset) name or path to a template
-h, --help Show help [boolean]
-s, --save-file [default: "./openapi_temp"]
Examples:
cli -f swagger.js -o api/ -t angular2 Convert a Swagger JSON file to
compatible-angular API
Plugin name
refers to thetemplate
parameter (-t
or--template
in the cli)
Language/Framework | Status | Plugin name (-t) |
---|---|---|
Angular 2 | Beta | angular2 |
Generator name
refers to themock-generator
parameter (--mock-generator
in the cli)
Engine | Status | Generator name (--mock-generator) |
---|---|---|
json-server | Beta | json-server |
This will generate a file in
output/temp.json|yaml
npm run start:dev -- -f URL_TO_SWAGGER.JSON/YAML
You can re-use the downloaded file or specify another folder
npm run start:dev -- -f output/temp.json -o src/generatedApi/ -t angular2