- 生成的schema-api/request-api.ts文件,可直接用于项目请求接口,无需手动编写代码。
- 文件路径:schema-api/interface-api.ts
- 可在项目中用于接口入参和返回数据TS类型声明。
- url接口路径作为key
- 接口方法分组显示,支持相同url多个方法(如:同一个url,get,post请求)
- Query:get参数
- Body:Post参数
- Response:接口返回数据
- 生成文件例子:
/**
* This file was auto-generated by @liangskyli/openapi-gen-ts.
* Do not make direct changes to the file.
*/
import type { paths } from './ts-schema';
export interface IApi {
'/root/v4/getQueryParams1-v4': {
get: {
Query: paths['/root/v4/getQueryParams1-v4']['get']['parameters']['query'];
Response: paths['/root/v4/getQueryParams1-v4']['get']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/getNoQueryParams-v4': {
get: {
Response: paths['/root/v4/getNoQueryParams-v4']['get']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/postBody1-v4': {
post: {
Query: paths['/root/v4/postBody1-v4']['post']['parameters']['query'];
Body: paths['/root/v4/postBody1-v4']['post']['requestBody']['content']['application/json'];
Response: paths['/root/v4/postBody1-v4']['post']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/postBody2-v4': {
post: {
Query: paths['/root/v4/postBody2-v4']['post']['parameters']['query'];
Body?: NonNullable<
paths['/root/v4/postBody2-v4']['post']['requestBody']
>['content']['application/json'];
Response: paths['/root/v4/postBody2-v4']['post']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/getQueryParams2-v4/{id}': {
head: {
Query: paths['/root/v4/getQueryParams2-v4/{id}']['head']['parameters']['query'];
Path: paths['/root/v4/getQueryParams2-v4/{id}']['head']['parameters']['path'];
Response: paths['/root/v4/getQueryParams2-v4/{id}']['head']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/getQueryParams3-v4': {
patch: {
Query: paths['/root/v4/getQueryParams3-v4']['patch']['parameters']['query'];
Response: paths['/root/v4/getQueryParams3-v4']['patch']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/file': {
post: {
Body: paths['/root/v4/file']['post']['requestBody']['content']['multipart/form-data'];
Response: paths['/root/v4/file']['post']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/files': {
post: {
Body: paths['/root/v4/files']['post']['requestBody']['content']['multipart/form-data'];
Response: paths['/root/v4/files']['post']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/Put': {
put: {
Query: paths['/root/v4/Put']['put']['parameters']['query'];
Response: paths['/root/v4/Put']['put']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/Delete': {
delete: {
Query: paths['/root/v4/Delete']['delete']['parameters']['query'];
Response: paths['/root/v4/Delete']['delete']['responses']['200']['content']['text/plain'];
};
};
'/root/v4': {
get: {
Query: paths['/root/v4']['get']['parameters']['query'];
Response: paths['/root/v4']['get']['responses']['200']['content']['text/plain'];
};
};
'/root/v4/postBody3-v4': {
post: {
Body: paths['/root/v4/postBody3-v4']['post']['requestBody']['content']['application/json'];
Response: paths['/root/v4/postBody3-v4']['post']['responses']['200']['content']['text/plain'];
};
};
'/root/getQueryParams1-v3': {
get: {
Query: paths['/root/getQueryParams1-v3']['get']['parameters']['query'];
Response: paths['/root/getQueryParams1-v3']['get']['responses']['200']['content']['application/json'];
};
};
'/root/getQueryParam-v3/{id}': {
get: {
Query: paths['/root/getQueryParam-v3/{id}']['get']['parameters']['query'];
Path: paths['/root/getQueryParam-v3/{id}']['get']['parameters']['path'];
Response: paths['/root/getQueryParam-v3/{id}']['get']['responses']['200']['content']['application/json'];
};
};
'/root/postBody1-v3': {
post: {
Body: paths['/root/postBody1-v3']['post']['requestBody']['content']['application/json'];
Response: paths['/root/postBody1-v3']['post']['responses']['200']['content']['application/json'];
};
};
'/root/postBody2-v3': {
post: {
Body: paths['/root/postBody2-v3']['post']['requestBody']['content']['application/json'];
Response: paths['/root/postBody2-v3']['post']['responses']['200']['content']['application/json'];
};
};
'/root/v2/getQueryParams1-v2': {
get: {
Query: paths['/root/v2/getQueryParams1-v2']['get']['parameters']['query'];
Response: paths['/root/v2/getQueryParams1-v2']['get']['responses']['200']['content']['application/json'];
};
};
'/root/v2/getQueryParam-v2/{id}': {
get: {
Query: paths['/root/v2/getQueryParam-v2/{id}']['get']['parameters']['query'];
Path: paths['/root/v2/getQueryParam-v2/{id}']['get']['parameters']['path'];
Response: paths['/root/v2/getQueryParam-v2/{id}']['get']['responses']['200']['content']['application/json'];
};
};
'/root/v1/getQueryParams1': {
get: {
Query: paths['/root/v1/getQueryParams1']['get']['parameters']['query'];
Response: paths['/root/v1/getQueryParams1']['get']['responses']['200']['content']['application/json'];
};
post: {
Body: paths['/root/v1/getQueryParams1']['post']['requestBody']['content']['application/json'];
Response: paths['/root/v1/getQueryParams1']['post']['responses']['200']['content']['application/json'];
};
};
'/root/v1/getQueryParams2': {
get: {
Query: paths['/root/v1/getQueryParams2']['get']['parameters']['query'];
Response: paths['/root/v1/getQueryParams2']['get']['responses']['200']['content']['application/json'];
};
};
'/root/v1/getQueryParam': {
get: {
Query: paths['/root/v1/getQueryParam']['get']['parameters']['query'];
Response: paths['/root/v1/getQueryParam']['get']['responses']['200']['content']['application/json'];
};
};
'/root/v1/getQueryParamWithQueryParams/{path1}/{path2}': {
get: {
Query: paths['/root/v1/getQueryParamWithQueryParams/{path1}/{path2}']['get']['parameters']['query'];
Path: paths['/root/v1/getQueryParamWithQueryParams/{path1}/{path2}']['get']['parameters']['path'];
Response: paths['/root/v1/getQueryParamWithQueryParams/{path1}/{path2}']['get']['responses']['200']['content']['application/json'];
};
};
'/root/v1/getParam': {
get: {
Path: paths['/root/v1/getParam']['get']['parameters']['path'];
Response: paths['/root/v1/getParam']['get']['responses']['200']['content']['application/json'];
};
};
'/root/v1/getQueryParamWithParam': {
get: {
Query: paths['/root/v1/getQueryParamWithParam']['get']['parameters']['query'];
Path: paths['/root/v1/getQueryParamWithParam']['get']['parameters']['path'];
Response: paths['/root/v1/getQueryParamWithParam']['get']['responses']['200']['content']['application/json'];
};
};
'/root/v1/postBody1': {
post: {
Query: paths['/root/v1/postBody1']['post']['parameters']['query'];
Body: paths['/root/v1/postBody1']['post']['requestBody']['content']['application/json'];
Response: paths['/root/v1/postBody1']['post']['responses']['200']['content']['application/json'];
};
};
'/root/v1/postBody2': {
post: {
Body: paths['/root/v1/postBody2']['post']['requestBody']['content']['application/json'];
Response: paths['/root/v1/postBody2']['post']['responses']['200']['content']['application/json'];
};
};
'/root/v1/postBody3': {
post: {
Body: paths['/root/v1/postBody3']['post']['requestBody']['content']['application/json'];
Response: paths['/root/v1/postBody3']['post']['responses']['200']['content']['application/json'];
};
};
'/root/v1/postBody4': {
post: {
Body: paths['/root/v1/postBody4']['post']['requestBody']['content']['application/json'];
Response: paths['/root/v1/postBody4']['post']['responses']['200']['content']['application/json'];
};
};
'/root/v1/postBody5': {
post: {
Body: paths['/root/v1/postBody5']['post']['requestBody']['content']['application/json'] &
paths['/root/v1/postBody5']['post']['requestBody']['content']['multipart/form-data'];
Response: paths['/root/v1/postBody5']['post']['responses']['200']['content']['application/json'];
};
};
'/root/v1/postBodyParam': {
post: {
Body: paths['/root/v1/postBodyParam']['post']['requestBody']['content']['application/json'];
Response: paths['/root/v1/postBodyParam']['post']['responses']['200']['content']['application/json'];
};
};
}
- 可直接用于项目请求接口,无需手动编写代码。
- 生成文件例子:
/**
* This file was auto-generated by @liangskyli/openapi-gen-ts.
* Do not make direct changes to the file.
*/
import type { AxiosRequestConfig } from '../../../example/request';
import request from '../../../example/request';
import type { IApi } from './interface-api';
type IConfig<
T extends Record<any, any> | unknown,
U extends Record<any, any>,
> = T & U;
type Equal<T, U> = (<P>(x: P) => P extends T ? 1 : 2) extends <P>(
x: P,
) => P extends U ? 1 : 2
? true
: false;
export const requestApi = {
'/root/v4/getQueryParams1-v4': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/v4/getQueryParams1-v4']['get']['Query'] }
>,
): Promise<IApi['/root/v4/getQueryParams1-v4']['get']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/v4/getQueryParams1-v4';
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v4/getNoQueryParams-v4': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url'
>,
Record<any, any>
>,
): Promise<IApi['/root/v4/getNoQueryParams-v4']['get']['Response']> => {
const { ...otherConfig } = config;
const finalURL = '/root/v4/getNoQueryParams-v4';
return request({
method: 'get',
url: finalURL,
...otherConfig,
});
},
},
'/root/v4/postBody1-v4': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params' | 'data'
>,
{
params: IApi['/root/v4/postBody1-v4']['post']['Query'];
data: IApi['/root/v4/postBody1-v4']['post']['Body'];
}
>,
): Promise<IApi['/root/v4/postBody1-v4']['post']['Response']> => {
const { params, data, ...otherConfig } = config;
const finalURL = '/root/v4/postBody1-v4';
return request({
method: 'post',
url: finalURL,
params: params,
data: data,
...otherConfig,
});
},
},
'/root/v4/postBody2-v4': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params' | 'data'
>,
{
params: IApi['/root/v4/postBody2-v4']['post']['Query'];
data?: IApi['/root/v4/postBody2-v4']['post']['Body'];
}
>,
): Promise<IApi['/root/v4/postBody2-v4']['post']['Response']> => {
const { params, data, ...otherConfig } = config;
const finalURL = '/root/v4/postBody2-v4';
return request({
method: 'post',
url: finalURL,
params: params,
data: data,
...otherConfig,
});
},
},
'/root/v4/getQueryParams2-v4/{id}': {
head: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{
params: IApi['/root/v4/getQueryParams2-v4/{id}']['head']['Query'];
path: IApi['/root/v4/getQueryParams2-v4/{id}']['head']['Path'];
}
>,
): Promise<
IApi['/root/v4/getQueryParams2-v4/{id}']['head']['Response']
> => {
const { params, path, ...otherConfig } = config;
let finalURL = '/root/v4/getQueryParams2-v4/{id}';
for (const [k, v] of Object.entries(path)) {
finalURL = finalURL.replace(`{${k}}`, encodeURIComponent(String(v)));
}
return request({
method: 'head',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v4/getQueryParams3-v4': {
patch: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/v4/getQueryParams3-v4']['patch']['Query'] }
>,
): Promise<IApi['/root/v4/getQueryParams3-v4']['patch']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/v4/getQueryParams3-v4';
return request({
method: 'patch',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v4/file': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/v4/file']['post']['Body'] }
>,
): Promise<IApi['/root/v4/file']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/v4/file';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/v4/files': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/v4/files']['post']['Body'] }
>,
): Promise<IApi['/root/v4/files']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/v4/files';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/v4/Put': {
put: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/v4/Put']['put']['Query'] }
>,
): Promise<IApi['/root/v4/Put']['put']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/v4/Put';
return request({
method: 'put',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v4/Delete': {
delete: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/v4/Delete']['delete']['Query'] }
>,
): Promise<IApi['/root/v4/Delete']['delete']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/v4/Delete';
return request({
method: 'delete',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v4': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/v4']['get']['Query'] }
>,
): Promise<IApi['/root/v4']['get']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/v4';
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v4/postBody3-v4': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/v4/postBody3-v4']['post']['Body'] }
>,
): Promise<IApi['/root/v4/postBody3-v4']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/v4/postBody3-v4';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/getQueryParams1-v3': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/getQueryParams1-v3']['get']['Query'] }
>,
): Promise<IApi['/root/getQueryParams1-v3']['get']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/getQueryParams1-v3';
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/getQueryParam-v3/{id}': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{
params: IApi['/root/getQueryParam-v3/{id}']['get']['Query'];
path: IApi['/root/getQueryParam-v3/{id}']['get']['Path'];
}
>,
): Promise<IApi['/root/getQueryParam-v3/{id}']['get']['Response']> => {
const { params, path, ...otherConfig } = config;
let finalURL = '/root/getQueryParam-v3/{id}';
for (const [k, v] of Object.entries(path)) {
finalURL = finalURL.replace(`{${k}}`, encodeURIComponent(String(v)));
}
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/postBody1-v3': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/postBody1-v3']['post']['Body'] }
>,
): Promise<IApi['/root/postBody1-v3']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/postBody1-v3';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/postBody2-v3': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/postBody2-v3']['post']['Body'] }
>,
): Promise<IApi['/root/postBody2-v3']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/postBody2-v3';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/v2/getQueryParams1-v2': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/v2/getQueryParams1-v2']['get']['Query'] }
>,
): Promise<IApi['/root/v2/getQueryParams1-v2']['get']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/v2/getQueryParams1-v2';
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v2/getQueryParam-v2/{id}': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{
params: IApi['/root/v2/getQueryParam-v2/{id}']['get']['Query'];
path: IApi['/root/v2/getQueryParam-v2/{id}']['get']['Path'];
}
>,
): Promise<IApi['/root/v2/getQueryParam-v2/{id}']['get']['Response']> => {
const { params, path, ...otherConfig } = config;
let finalURL = '/root/v2/getQueryParam-v2/{id}';
for (const [k, v] of Object.entries(path)) {
finalURL = finalURL.replace(`{${k}}`, encodeURIComponent(String(v)));
}
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v1/getQueryParams1': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/v1/getQueryParams1']['get']['Query'] }
>,
): Promise<IApi['/root/v1/getQueryParams1']['get']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/v1/getQueryParams1';
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/v1/getQueryParams1']['post']['Body'] }
>,
): Promise<IApi['/root/v1/getQueryParams1']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/v1/getQueryParams1';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/v1/getQueryParams2': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/v1/getQueryParams2']['get']['Query'] }
>,
): Promise<IApi['/root/v1/getQueryParams2']['get']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/v1/getQueryParams2';
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v1/getQueryParam': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{ params: IApi['/root/v1/getQueryParam']['get']['Query'] }
>,
): Promise<IApi['/root/v1/getQueryParam']['get']['Response']> => {
const { params, ...otherConfig } = config;
const finalURL = '/root/v1/getQueryParam';
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v1/getQueryParamWithQueryParams/{path1}/{path2}': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{
params: IApi['/root/v1/getQueryParamWithQueryParams/{path1}/{path2}']['get']['Query'];
path: IApi['/root/v1/getQueryParamWithQueryParams/{path1}/{path2}']['get']['Path'];
}
>,
): Promise<
IApi['/root/v1/getQueryParamWithQueryParams/{path1}/{path2}']['get']['Response']
> => {
const { params, path, ...otherConfig } = config;
let finalURL = '/root/v1/getQueryParamWithQueryParams/{path1}/{path2}';
for (const [k, v] of Object.entries(path)) {
finalURL = finalURL.replace(`{${k}}`, encodeURIComponent(String(v)));
}
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v1/getParam': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url'
>,
{ path: IApi['/root/v1/getParam']['get']['Path'] }
>,
): Promise<IApi['/root/v1/getParam']['get']['Response']> => {
const { path, ...otherConfig } = config;
let finalURL = '/root/v1/getParam';
for (const [k, v] of Object.entries(path)) {
finalURL = finalURL.replace(`{${k}}`, encodeURIComponent(String(v)));
}
return request({
method: 'get',
url: finalURL,
...otherConfig,
});
},
},
'/root/v1/getQueryParamWithParam': {
get: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params'
>,
{
params: IApi['/root/v1/getQueryParamWithParam']['get']['Query'];
path: IApi['/root/v1/getQueryParamWithParam']['get']['Path'];
}
>,
): Promise<IApi['/root/v1/getQueryParamWithParam']['get']['Response']> => {
const { params, path, ...otherConfig } = config;
let finalURL = '/root/v1/getQueryParamWithParam';
for (const [k, v] of Object.entries(path)) {
finalURL = finalURL.replace(`{${k}}`, encodeURIComponent(String(v)));
}
return request({
method: 'get',
url: finalURL,
params: params,
...otherConfig,
});
},
},
'/root/v1/postBody1': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'params' | 'data'
>,
{
params: IApi['/root/v1/postBody1']['post']['Query'];
data: IApi['/root/v1/postBody1']['post']['Body'];
}
>,
): Promise<IApi['/root/v1/postBody1']['post']['Response']> => {
const { params, data, ...otherConfig } = config;
const finalURL = '/root/v1/postBody1';
return request({
method: 'post',
url: finalURL,
params: params,
data: data,
...otherConfig,
});
},
},
'/root/v1/postBody2': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/v1/postBody2']['post']['Body'] }
>,
): Promise<IApi['/root/v1/postBody2']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/v1/postBody2';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/v1/postBody3': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/v1/postBody3']['post']['Body'] }
>,
): Promise<IApi['/root/v1/postBody3']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/v1/postBody3';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/v1/postBody4': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/v1/postBody4']['post']['Body'] }
>,
): Promise<IApi['/root/v1/postBody4']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/v1/postBody4';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/v1/postBody5': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/v1/postBody5']['post']['Body'] }
>,
): Promise<IApi['/root/v1/postBody5']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/v1/postBody5';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
'/root/v1/postBodyParam': {
post: <T extends Record<any, any> | never = never>(
config: IConfig<
Omit<
Equal<T, never> extends true
? AxiosRequestConfig
: T & AxiosRequestConfig,
'method' | 'url' | 'data'
>,
{ data: IApi['/root/v1/postBodyParam']['post']['Body'] }
>,
): Promise<IApi['/root/v1/postBodyParam']['post']['Response']> => {
const { data, ...otherConfig } = config;
const finalURL = '/root/v1/postBodyParam';
return request({
method: 'post',
url: finalURL,
data: data,
...otherConfig,
});
},
},
};
- 使用方法
import { requestApi } from './schema-api/request-api.ts';
requestApi['/root/postBody2-v3'].post({
data: { a: { postBody1param1: '1' } },
}).then((res) => {
console.log(res);
});