Closed liuyang-kevin closed 2 years ago
我修改了生成模版njk,支持对路径参数使用对象,跟泛型支持返回值差不多,使用 objParams & {id:string;}
对象合并参数的方式,兼容对象赋值,跟字典赋值
export async function EvaluationReportData(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.EvaluationReportDataParams & {
// path
/** 报告id */
id: string;
},
options?: { [key: string]: any },
) {
const { id: param0, ...queryParams } = params;
return request<API.Response & { data?: API.EvaluationReportData }>(
`/admin/evaluations/reports/${param0}/data`,
{
method: 'GET',
params: { ...queryParams },
...(options || {}),
},
);
}
对于路径上的参数,貌似没有自动转换对象,所以我们根据所有接口,在typings.d.ts文件末尾全量生成了 “接口+Params” 的数据类型。
// 这个项目的确要用
type uEvaluationReportParams = {
/** 测评任务id */
id: string;
};
// 这个项目里不会使用(没有路径参数,比如post创建数据),多了一行类型,但是对开发不影响
type uLoginParams = Record<string, any>;
修改了生成路径参数使用对象,跟泛型支持返回值差不多,使用
objParams & {id:string;}
对象合并参数的方式,我有模型对象启动,跟驱动启动版本export async function Evaluation生成的Params ( // 类型 ( // 生成的参数) params生成的参数 swagger 默认没有对象) params : API . EvaluationReDataParams & { // path /** 报告id */ id : string ; } , options ?: { [键:字符串]:任何 } , ) { const { id:param0 , ... queryParams } = params ; 返回 请求< API 。响应 & { 数据?: API . EvaluationReportData } > ( `/admin/evaluations/reports/ ${ param0 } /data` , { method : 'GET' , params : { ... queryParams } , ... ( options || { } ) , } , ) ; }
路径上的参数,假装没有自动转换对象,所以我们根据所有的接口,在打字.d.ts 文件完整量生成了“接口类型+参数”的。
//这个项目确实需要 type uEvaluationReportParams = { /** 任务任务id */ id : string ; } ; // 这个项目不会使用(没有路径,比如创建数据),汇集里影响一条线类型,但是对开发不 键入 uParams = Record < string , any > ;
好像在 #23 ,我也进行了修复,你测试下看呢?
更新了。那个parent的逻辑虽然没看懂。。。貌似多套了一层数组?
我调整了代码,有URL路径参数才生成 Params类型,跟历史生成结果一样
目前来说,query params 是没有问题的呀!
我是对URL上的参数生成了类型,使用更为方便
这样更好限定参数类型
好吧,虽然这不是openapi规范,但还是很有用的! 我更倾向于在openapi文档中声明模型去使用。
刚才看了下。swagger貌似路径上的参数就是没有类型生成。。。项目比较忙。最近刚用swagger
路径上的参数应该都是string把
路径上的参数应该都是string把
我没明白你的意思,是说params参数应该是字符串么。
路径上的参数应该都是字符串把
我没明白你的英文,是说参数参数应该是字符串么。
url 上的参数,都是string
@lifegit 这和pr是不是也支持了 url参数,我记得原来不支持会出现bug
bug倒不是bug。现在的样子:
@liuyang-kevin 的意思是
params: {
// query
/** name、available.use */
params?: string;
/** createdAt */
sort?: string;
},
再搞成一个结构放在 typings.d.ts
但是openapi里,url内的参数确实只能string类型哇
https://github.com/ant-design/ant-design-pro/issues/9159
看看这个issue 能顺便修掉吗
ant-design/ant-design-pro#9159
看看这个issue 能顺便修掉吗
你的改动太多了,做个说明你改动了什么吧。最好有前后不同的例子
不要改动默认的例子,需要搞就新增。