代码拉取完成,页面将自动刷新
同步操作将从 惊鸦/nswag-ts 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
根据 swagger 文档生成 typescript 客户端调用代码
"nswag-init":"nswag init", // 初始化配置
"nswag-run":"nswag run" // 执行代码生成
第一步执行:npm run nswag-init 初始化项目
初始化完成后会在项目根目录创建文件夹 nswag,里面放置了配置文件及代码模板
修改配置文件和代码模板就可以进行第二步生成操作了
config.js 为配置文件
tpl 文件里面是代码模板(可以根据自己的实际情况调整模板)
第二步执行:npm run nswag-run 执行代码生成调用接口
{
Name: 'nswag-ts',
Description: '根据swagger文档生成typescript客户端调用代码',
Apis: [
{
SwaggerUrl: string // 接口文档地址(必填)
ApiBase: string // 接口根节点(必填)
ApiName: string // 接口名称(必填)
OutPath: string // 输出目录(默认:项目根目录:/src/api/)
TplPath: string // 模板路径(默认:初始化后会自动copy模板文件夹到项目根目录:nswag,如果进行了修改则需配置此目录)
Mock: boolean // 是否启用模拟数据 (默认:false)
FormatMock: Function // 接管模拟数据格式化
FormatControllerName: Function // 格式化模块名称(默认:接口名称+Api)
FormatMethodName: Function // 格式化接口名称(默认:小驼峰命名)
FormatModelName: Function // 格式化dto对象、枚举名称(默认:只会去除特殊字符)
}
]
}
// 格式化模型
function formatModelName(n) {
// TODO 预处理掉乱七八糟的字符
return n.replace(/`1/g, '')
}
// 格式化模拟数据
function formatMock(val, p, mock) {
switch (p.Type.TypeOf) {
case 'string':
switch (p.Name) {
case 'name':
val = '@cname'
break
case 'title':
val = '@ctitle(10, 20)'
break
case 'mobile':
val = '@natural(10000)'
break
case 'email':
val = '@email'
break
case 'province':
val = '@province'
break
case 'city':
val = '@city'
break
case 'area':
val = '@county'
break
default:
val = '@ctitle(10, 20)'
break
}
mock[p.Name] = val
break
case 'number':
switch (p.Name) {
case 'result_code':
val = 0
break
case 'page_index':
val = 1
break
case 'page_size':
val = 15
break
case 'total_count':
val = 30
break
default:
val = '@integer(0, 100)'
break
}
mock[p.Name] = val
break
case 'array':
mock[p.Name + '|20'] = val
break
}
return mock
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。