swagger-request-gen v1.0.10
Swagger Request Generator
Frontend swagger request generator in typescript/axios .
You can use this package to generator swagger request files for your frontend app.
Usage
1.install
npm install -D swagger-request-gen
2.add a command to run this package, in your package.json
{
"scripts": {
"generate": "gen-request [swagger-url] [dir-to-save-requests]"
}
}
The two params are:
swagger-url the url to request a swagger doc, like http://localhost:8081/v2/api-docs
dir-to-save-requests the directory you wish to store the generated files, it's a relative path from the project root, you can use ./request
, which means the files would be stored inside the dir like:
<path to project>/request/
2.1 (optional) you can specify the request client to use (like 'axios' or your own request client) with a config file request-gen-config.js
in your <project root>
,
and write it like:
module.exports = {
clientImportState: `const requestClient = require('./request') `
}
This tool would automatically discover this file, and use the clientImportState
as the import script for each request.
And you need to make sure the imported varialbe name to be requestClient
.
If not found, it would use import requestClient from 'axios'
as default.
3.run command
npm run generate
4.get your code
The 3rd step would run this package, inside, it would try visiting the swagger doc, and retrieve them, then use the doc to render mustache
template into request files.
The output would be like:
Request
import axios from "axios"
import { DataUserLogin } from "../definitions/DataUserLogin"
export function apiPostUserLogin(dataUserLogin: DataUserLogin) {
return axios.request({
url: `/v1/auth/login`,
method: `post`,
params: {},
data: dataUserLogin,
})
}
Definition
export interface DataUserLogin {
password: string;
username: string;
}
Issues
For any problems, feel free to add to the issue tab.