UniApp 示例

项目配置
安装、初始化和首次配置,请参考 UniApp 接入教程。
概述
本示例展示了如何在 UniApp 项目中集成 ApiSorcery。UniApp 是一个跨平台框架,允许您编写一次代码,部署到多个平台,包括 iOS、Android、Web 和各种小程序。
特性
- 跨平台兼容性:在所有 UniApp 支持的平台上无缝运行
- TypeScript 支持:完整的 TypeScript 集成,提供更好的开发体验
- 自动生成 API 客户端:从 Swagger/OpenAPI 规范生成类型安全的 API 客户端
- 请求/响应拦截器:内置请求和响应处理支持
- 错误处理:全面的错误处理,提供适当的错误类型
功能演示
本示例应用基于真实后端 API,实现了完整的用户管理模块:
- 分页列表 — 支持按 code、姓名、状态条件过滤的分页查询
- 完整 CRUD — 新增、查看、编辑、删除用户记录
- 头像上传 — 通过
POST /file/upload上传图片,含 10 MB 大小校验 - Excel 导出 — 通过 Blob 响应下载过滤后的结果为
.xlsx文件 - 字段验证 — 表单提交前异步检查
code字段是否已存在
代码示例
分页查询
typescript
import * as ApiUser from '@/apis/auto/demo/ApiUser';
import type { UserInfoDto } from '@/apis/auto/demo/model';
export default {
data() {
return { users: [] as UserInfoDto[], total: 0, page: 1 };
},
async onLoad() {
const res = await ApiUser.getUserPaged({
pagination: { page: this.page, limit: 10 },
code: '',
name: '',
});
this.users = res.results || [];
this.total = res.total || 0;
},
};Excel 导出
typescript
import * as ApiUser from '@/apis/auto/demo/ApiUser';
async function exportUsers(code = '', name = '') {
const res = await ApiUser.exportUsers({ code, name });
uni.showToast({ title: '导出成功', icon: 'success' });
}头像上传
typescript
import * as ApiFile from '@/apis/auto/demo/ApiFile';
async function uploadAvatar(): Promise<string> {
return new Promise((resolve, reject) => {
uni.chooseImage({
count: 1,
success: async ({ tempFilePaths }) => {
const fileId = await ApiFile.uploadFile({ file: tempFilePaths[0] });
resolve(`${BASE_URL}/file/${fileId}`);
},
fail: reject,
});
});
}平台特定注意事项
小程序
当目标平台为小程序(微信、支付宝等)时,请确保将您的 API 端点添加到相应平台配置的白名单中。
H5/Web
对于 H5 部署,请在后端服务器上正确配置 CORS 以允许跨域请求。
App(iOS/Android)
原生应用构建无需额外配置即可正常工作。
最佳实践
- 环境配置:为开发、测试和生产环境使用不同的 API 端点
- 错误处理:实现全局错误处理以获得一致的用户体验
- 加载状态:在 API 调用期间显示加载指示器
- 缓存:实现适当的缓存策略以获得更好的性能
- 类型安全:利用 TypeScript 获得更好的代码质量和开发体验