Package Exports
- swagger-typescript
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (swagger-typescript) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
⭐⭐⭐ If you would like to contribute, please refer to To do list and a list of open tasks.⭐⭐⭐
Migrate Swagger-Typescript v3 to Swagger-Typescript v4
Support OpenApi v3
An auto typescript/javascript code generator from swagger. Each endpoint will be constructed as a function, full type base.
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 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"
}
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": "http://example.com/api/swagger.json",
"dir": "./test",
"prettierPath": ".prettierrc",
"language": "typescript",
"ignore": {
"headerParams": ["terminalId"]
}
}
[Key ] |
[default ] |
Comment |
---|---|---|
url |
Required | Address of swagger.json |
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}' |
ignore |
Optional | Ignore headers from type for Example: "ignore": { "headerParams": ["terminalId"]} |
methodParamsByTag |
false | add add a tag insteadOf params name to generated method name (example: getUserP1P2 insteadOf getUserConnectionIdAccountId) |
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.
run by node
const { generate } = require("swagger-typescript");
generate(config);
// or
generate(); // will be use ./swagger.config.json
Stories
why-you-should-use-swagger-typescript-for-generate-apis-code