@zoff-tech/swagger-typescript
v4.0.9
Published
A auto generate typescript code from swagger
Downloads
2
Maintainers
Readme
This is a Fork of https://github.com/hosseinmd/swagger-typescript
For Example: Get method of '/Account' path will be this code in services.ts
import { getAccount } from "./services";
const response = await getAccount({ id: 1234 });
install
$ yarn add @zoff-tech/swagger-typescript
get start
Before running, add your config to swagger.config.json
swagger.config.json
{
"url": "http://example.com/api/swagger.json",
"dir": "./test"
}
{
"file": "./api.yaml",
"dir": "./test"
}
{
"file": "./api.json",
"dir": "./test"
}
run
yarn swag-ts
config.ts
This file automatically will be create after first run. You could change this file for customization. Don't change other files, if you want another config create Issue or PR.
baseConfig
const baseConfig: AxiosRequestConfig = {
baseURL: "", // <--- Add your base url
//other static configs
};
Now you can use APIs, So for advanced config read below.
swagger.config.json
For Example:
{
"url": "https://generator3.swagger.io/openapi.json",
"dir": "./test",
"language": "typescript",
"modelNaming":"camel",
"modelPropertyNaming":"original",
"enumPropertyNaming":"pascal",
"serviceNaming":"canel",
"tagNaming":"snake-upper",
"ignore": {
"headerParams": [
"terminalId"
]
}
}
| [Key
] | [default
] | Comment |
| ------------ | ---------------- | -------------------------------------------------------------------------------------- |
| url
| Optional | Address of swagger.json |
| file
| Optional | Path of file swagger.json or swagger.yaml |
| dir
| Required | Address of output |
| language
| typescript
| export to "javascript" or "typescript" |
| methodName
| {method}{path}
| Supported mixed of "{method}{path}{operationId}". for Example: 'service{method}{path}' |
| modelNaming
| original
| camel
or pascal
or snake
or snake-upper
or original
|
| modelPropertyNaming
| original
| camel
or pascal
or snake
or snake-upper
or original
|
| enumPropertyNaming
| original
| camel
or pascal
or snake
or snake-upper
or original
|
| serviceNaming
| original
| camel
or pascal
or snake
or snake-upper
or original
|
| tagNaming
| original
| camel
or pascal
or snake
or snake-upper
or original
|
| ignore
| Optional | Ignore headers from type for Example: "ignore": { "headerParams": ["terminalId"]}
|
config.ts
This file automatically will be created after first run. You could change this file for customization. Don't change other files, if you want another config create Issue or PR.
getAxiosInstance
getAxiosInstance used for create an instance of axios request you can customize that for what you needed
baseConfig
baseConfig used for get static configs and headers. if you need some dynamic configs like add authentication to headers use requestConfig.headers.authorization
into of axiosInstance.interceptors.request.use
function.
Typescript / Factories
Operations grouped by tags like Swagger UI.
import { getApi, getService } from "../apis-generated/serviceFactory";
// Api factory
const apiUsuario = getApi("Usuario");
// Service factory
let response = await getService("Usuario","getUsuario")({ id: this.controller.IdUsuario });