6.3 KiB
6.3 KiB
API 接口文档
概述
本文档详细描述了 MobVue 项目的 API 接口规范和使用方法。
基础配置
请求配置
- 基础 URL: 通过环境变量
VITE_BASE_URL配置 - 超时时间: 10 秒
- Content-Type:
application/json
响应格式
interface ApiResponse<T> {
code: number; // 业务状态码
data: T; // 响应数据
msg?: string; // 响应消息
message?: string; // 响应消息(兼容字段)
}
状态码说明
0: 成功401: 登录过期403: 拒绝访问500: 服务器内部错误
用户认证模块
微信登录
获取 OpenID
// 接口: GET /api/v1/wx/getOpenId
interface GetOpenIdParams {
code: string;
}
interface GetOpenIdResponse {
openid: string;
}
企业微信登录
// 接口: POST /api/v1/wx/qyLogin
interface QyLoginParams {
corpid: string;
code: string;
state?: string;
}
interface QyLoginResponse {
userid: string;
openid: string;
isCabinetAdmin: number;
name: string;
qyUserId: number;
ab98User: Ab98UserDTO;
}
AB98 用户系统
Token 登录
// 接口: POST /api/v1/ab98/tokenLogin
interface TokenLoginParams {
token: string;
userid: string;
openid: string;
}
interface LoginData {
face_img: string;
success: boolean;
sex: string;
name: string;
userid: string;
registered: boolean;
tel: string;
}
商品模块
商品列表
// 接口: GET /api/v1/product/list
interface ProductListResponse {
products: Product[];
total: number;
}
interface Product {
id: number;
name: string;
price: number;
image: string;
description: string;
stock: number;
}
商品详情
// 接口: GET /api/v1/product/{id}
interface ProductDetailResponse extends Product {
specifications: Specification[];
images: string[];
}
interface Specification {
id: number;
name: string;
value: string;
}
订单模块
创建订单
// 接口: POST /api/v1/order/create
interface CreateOrderParams {
productId: number;
quantity: number;
specifications?: Record<string, any>;
deliveryInfo?: DeliveryInfo;
}
interface CreateOrderResponse {
orderId: string;
totalAmount: number;
status: string;
}
订单列表
// 接口: GET /api/v1/order/list
interface OrderListParams {
page?: number;
size?: number;
status?: string;
}
interface OrderListResponse {
orders: Order[];
total: number;
page: number;
size: number;
}
interface Order {
id: string;
productName: string;
totalAmount: number;
status: string;
createTime: string;
}
订单详情
// 接口: GET /api/v1/order/{id}
interface OrderDetailResponse extends Order {
items: OrderItem[];
deliveryInfo: DeliveryInfo;
paymentInfo: PaymentInfo;
}
interface OrderItem {
productId: number;
productName: string;
quantity: number;
price: number;
}
柜机管理模块
柜机列表
// 接口: GET /api/v1/cabinet/list
interface CabinetListResponse {
cabinets: Cabinet[];
}
interface Cabinet {
id: number;
name: string;
location: string;
status: string;
capacity: number;
usedCapacity: number;
}
绑定商品
// 接口: POST /api/v1/cabinet/bind
interface BindGoodsParams {
cabinetId: number;
productId: number;
quantity: number;
}
interface BindGoodsResponse {
success: boolean;
message: string;
}
审批模块
提交审批
// 接口: POST /api/v1/approval/submit
interface SubmitApprovalParams {
type: string;
content: Record<string, any>;
attachments?: string[];
}
interface SubmitApprovalResponse {
approvalId: string;
status: string;
}
审批列表
// 接口: GET /api/v1/approval/list
interface ApprovalListResponse {
approvals: Approval[];
total: number;
}
interface Approval {
id: string;
type: string;
status: string;
submitter: string;
submitTime: string;
content: Record<string, any>;
}
处理审批
// 接口: POST /api/v1/approval/handle
interface HandleApprovalParams {
approvalId: string;
action: 'approve' | 'reject';
comment?: string;
}
interface HandleApprovalResponse {
success: boolean;
message: string;
}
余额管理
获取余额
// 接口: GET /api/v1/balance
interface GetBalanceParams {
corpid: string;
openid: string;
}
interface GetBalanceResponse {
balance: number;
useBalance: number;
balanceLimit: number;
userid: string;
corpid: string;
ab98User?: Ab98UserDTO;
}
企业微信用户余额
// 接口: GET /api/v1/balance/qyUser
interface GetBalanceByQyUseridParams {
corpid: string;
userid: string;
}
interface GetBalanceByQyUseridResponse extends GetBalanceResponse {
// 继承 GetBalanceResponse 的所有字段
}
数据模型
Ab98UserDTO
interface Ab98UserDTO {
faceImg?: string;
sex?: string;
name?: string;
userid?: string;
tel?: string;
}
DeliveryInfo
interface DeliveryInfo {
recipient: string;
phone: string;
address: string;
deliveryTime?: string;
}
PaymentInfo
interface PaymentInfo {
paymentMethod: string;
paymentTime?: string;
transactionId?: string;
}
错误处理
常见错误码
400: 请求参数错误401: 未授权访问403: 权限不足404: 资源不存在500: 服务器内部错误
错误处理示例
try {
const response = await getDataApi(params);
// 处理成功响应
} catch (error) {
// 处理错误
console.error('API 调用失败:', error.message);
// 显示错误提示给用户
}
使用示例
调用 API
import { getProductListApi } from '@/common/apis/product';
// 获取商品列表
const fetchProducts = async () => {
try {
const response = await getProductListApi({
page: 1,
size: 20
});
if (response.code === 0) {
return response.data.products;
}
} catch (error) {
console.error('获取商品列表失败:', error);
}
};
状态管理集成
import { useProductStore } from '@/pinia/stores/product';
const productStore = useProductStore();
// 在组件中使用
const loadProducts = async () => {
await productStore.fetchProducts();
};