当前位置: 首页 > news >正文

orval openApi接口生成

orval 是一个适合大型项目接口生成的openApi typescript接口文档的 工具库。

1、安装依赖

pnpm add orval -D

2、orval.config.ts配置文件

import { defineConfig } from 'orval';
export default defineConfig({api: {input: 'http://127.0.0.1:18880/api-doc/openapi.json/pc',output: {target: '../../src/services/clfSign.ts',mode: 'tags',schemas: '../../src/services/schemas',operationSchemas: '../../src/services/operationSchemas',clean: true,override: {mutator: {path: './customClient.ts',name: 'customClient'},header: () => 'orval 配合umi接口生成',},},hooks: {afterAllFilesWrite: 'prettier --write',},},
});

3、orval 配合umi接口生成

mutator 请求适配文件。

import { request } from '@umijs/max';
export const customClient = async <T>(config: { [key: string]: any }, opts?: { [key: string]: any }): Promise<T>=> {const { url, ...rest } = config;return await request(url, { ...rest, params: { ...rest?.params }, ...(opts || {}) }).then(({ data }) => data);
};
export default customClient;

4、orval 配合uni-app接口生成

mutator 请求适配文件

interface RequestConfig {url: stringmethod: stringparams?: Record<string, string | number | boolean | undefined>data?: unknownheaders?: Record<string, string>
}export const customClient = async <T>({url,method,params,data,headers = {}}: RequestConfig): Promise<T> => {const queryString = params? `?${new URLSearchParams(Object.entries(params).reduce((acc, [key, value]) => {if (value !== undefined) {acc[key] = String(value)}return acc},{} as Record<string, string>)).toString()}`: ''const fullUrl = `${url}${queryString}`const sessionToken = uni.getStorageSync('access_token') || ''const defaultHeaders: Record<string, string> = {...(sessionToken && {Authorization: `Bearer ${sessionToken}`,}),...headers,}return new Promise((resolve, reject) => {uni.request({url: fullUrl,method: method as 'GET' | 'POST' | 'PUT' | 'DELETE',data,header: defaultHeaders,withCredentials: false,success: res => {const responseData = res.data as Tif (res.statusCode >= 200 && res.statusCode < 300) {resolve(responseData)} else {if (res.statusCode === 401 || res.statusCode === 403) {uni.setStorageSync('access_token', '')uni.navigateTo({ url: '/pages/Login/index' })reject(new Error('会话已过期,正在跳转到登录页面'))return}if (res.statusCode === 500) {uni.showToast({title: (res.data as any)?.errorMessage,icon: 'error',duration: 5000,})resolve(responseData)return}const errorMessage =typeof res.data === 'object' && res.data && 'message' in res.data? (res.data as any).message: '未知错误'reject(new Error(`请求失败,状态码 ${res.statusCode}:${errorMessage}`))}},fail: err => {uni.showToast({title: err.errMsg || '未知错误',icon: 'error',duration: 5000,})reject(new Error(`API 请求失败:${err.errMsg || '未知错误'}`))},})})
}

启动命令根据配置文件生成接口

"scripts":{"openapi": "orval --config ./config/orvalConfig/orval.config.ts"
}
http://www.jsqmd.com/news/366225/

相关文章:

  • 2026最新岗位外包推荐!天津优质岗位外包服务商权威榜单发布,适配产业园区/制造业/装备制造/中型企业 - 品牌推荐2026
  • 2026年市面上有实力的闸阀公司排行榜,蝶阀/电动调节阀/不锈钢阀门/铸钢球阀/通风蝶阀/阀门/止回阀,闸阀企业哪家好 - 品牌推荐师
  • G-Star 精选开源项目推荐|第八期
  • 2026年江苏好用的钢管总成制造商服务内容解读 - myqiye
  • 2026最新薪酬代发推荐!天津优质薪酬代发服务商权威榜单发布,适配大型集团/商业物业/中小企业/装备制造 - 品牌推荐2026
  • 了解汽车学校价格,从排行中找知名的汽车培训学校 - 工业设备
  • 东莞企业必看:专业GEO优化服务商综合评估与推荐指南 - 品牌推荐大师
  • New API 入驻 AtomGit|一站式 AI 开发网关高效赋能开发者
  • 高端智能锁哪个品牌靠谱?2026年高端智能锁推荐与评价,解决稳定性与安装核心痛点 - 十大品牌推荐
  • 2026年专业真空清洗机排名,宁波博尔创新科技性价比之选 - 工业品网
  • 智慧消防服务解决方案合作案例多的厂商怎么选? - mypinpai
  • Qwen2.5-Omni-7B|开启多模态理解与生成的新纪元
  • 5个步骤开发Reachy Mini应用:从创意构思到功能实现
  • 深圳旧房改造公司权威推荐榜单(2026年最新) - 品牌评测官
  • 如何修复网站ERR_NAME_NOT_RESOLVED错误?
  • 2026最新灵活用工推荐!京津冀区域优质灵活用工服务商权威榜单发布 - 品牌推荐2026
  • 2026年长沙美业学校排名,湖南长沙欧曼谛美业学校性价比与教学实力分析 - mypinpai
  • Caido:轻量高效的Web安全审计工具集
  • 2026必备!10个AI论文软件测评:专科生毕业论文+开题报告高效写作工具推荐
  • @Transactional注解
  • 2026年厦门空运物流公司推荐:基于多场景深度评价,针对跨境电商与急件痛点 - 十大品牌推荐
  • 7天掌握音频驱动视频生成:零基础从入门到精通
  • vmare workstation部署rocky8记录
  • 2026最新众包服务推荐!天津/京津冀区域优质服务商权威榜单发布,适配多行业场景 - 品牌推荐2026
  • 深入解析:【OPENGL ES 3.0 学习笔记】第五天:渲染彩色三角形(C++版本)
  • 如何选择厦门空运物流公司?2026年推荐与全面评价,直击网络覆盖与稳定性痛点 - 十大品牌推荐
  • Arnis动态配置管理与多环境适配实践指南:提升配置效率的完整方案
  • 2026最新劳务派遣推荐!天津优质劳务派遣服务商权威榜单发布,适配多场景多类型企业需求 - 品牌推荐2026
  • 掌握强化学习可复现性:从随机种子到实验验证的完整指南
  • 2026深圳新房艺术漆+房屋局改权威指南|文小墙领衔,专业服务商优选榜单(附官方实测数据) - 品牌评测官