refactor(api): 更新 API调用以使用新的请求工具- 将所有 API 调用中的 request-legacy 替换为 request
- 优化部分 API 调用的参数传递方式 - 统一导入 ApiResult 和 PageResult 类型的路径
This commit is contained in:
31
src/utils/jsonUtils.ts
Normal file
31
src/utils/jsonUtils.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* 判断字符串是否为有效的JSON格式
|
||||
* @param str 要检测的字符串
|
||||
* @returns boolean
|
||||
*/
|
||||
export function isValidJSON(str: string): boolean {
|
||||
if (typeof str !== 'string' || str.trim() === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
JSON.parse(str);
|
||||
return true;
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 安全解析JSON,失败时返回默认值
|
||||
* @param str JSON字符串
|
||||
* @param defaultValue 默认值
|
||||
* @returns 解析结果或默认值
|
||||
*/
|
||||
export function safeJSONParse<T>(str: string, defaultValue: T): T {
|
||||
try {
|
||||
return JSON.parse(str);
|
||||
} catch (error) {
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
@@ -307,93 +307,98 @@ const buildQueryString = (params: Record<string, any>): string => {
|
||||
return queryString ? `?${queryString}` : '';
|
||||
};
|
||||
|
||||
// GET请求
|
||||
// GET请求 - 返回完整的ApiResult响应(适配后台生成的代码)
|
||||
export function get<T>(url: string, params?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
const fullUrl = buildUrl(url) + (params ? buildQueryString(params) : '');
|
||||
return request<T>({
|
||||
url: fullUrl,
|
||||
method: 'GET',
|
||||
returnRaw: true,
|
||||
...config
|
||||
});
|
||||
}
|
||||
|
||||
// POST请求
|
||||
// POST请求 - 返回完整的ApiResult响应(适配后台生成的代码)
|
||||
export function post<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
return request<T>({
|
||||
url: buildUrl(url),
|
||||
method: 'POST',
|
||||
data,
|
||||
returnRaw: true,
|
||||
...config
|
||||
});
|
||||
}
|
||||
|
||||
// PUT请求
|
||||
// PUT请求 - 返回完整的ApiResult响应(适配后台生成的代码)
|
||||
export function put<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
return request<T>({
|
||||
url: buildUrl(url),
|
||||
method: 'PUT',
|
||||
data,
|
||||
returnRaw: true,
|
||||
...config
|
||||
});
|
||||
}
|
||||
|
||||
// PATCH请求
|
||||
// PATCH请求 - 返回完整的ApiResult响应(适配后台生成的代码)
|
||||
export function patch<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
return request<T>({
|
||||
url: buildUrl(url),
|
||||
method: 'PATCH',
|
||||
data,
|
||||
returnRaw: true,
|
||||
...config
|
||||
});
|
||||
}
|
||||
|
||||
// DELETE请求
|
||||
// DELETE请求 - 返回完整的ApiResult响应(适配后台生成的代码)
|
||||
export function del<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
return request<T>({
|
||||
url: buildUrl(url),
|
||||
method: 'DELETE',
|
||||
data,
|
||||
returnRaw: true,
|
||||
...config
|
||||
});
|
||||
}
|
||||
|
||||
// 兼容旧API的请求方法(返回完整的ApiResponse)
|
||||
export function getRaw<T>(url: string, params?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
// 便捷方法 - 自动提取data字段(用于不需要处理完整ApiResult的场景)
|
||||
export function getData<T>(url: string, params?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
const fullUrl = buildUrl(url) + (params ? buildQueryString(params) : '');
|
||||
return request<T>({
|
||||
url: fullUrl,
|
||||
method: 'GET',
|
||||
returnRaw: true,
|
||||
returnRaw: false,
|
||||
...config
|
||||
});
|
||||
}
|
||||
|
||||
export function postRaw<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
export function postData<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
return request<T>({
|
||||
url: buildUrl(url),
|
||||
method: 'POST',
|
||||
data,
|
||||
returnRaw: true,
|
||||
returnRaw: false,
|
||||
...config
|
||||
});
|
||||
}
|
||||
|
||||
export function putRaw<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
export function putData<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
return request<T>({
|
||||
url: buildUrl(url),
|
||||
method: 'PUT',
|
||||
data,
|
||||
returnRaw: true,
|
||||
returnRaw: false,
|
||||
...config
|
||||
});
|
||||
}
|
||||
|
||||
export function delRaw<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
export function delData<T>(url: string, data?: any, config?: Partial<RequestConfig>): Promise<T> {
|
||||
return request<T>({
|
||||
url: buildUrl(url),
|
||||
method: 'DELETE',
|
||||
data,
|
||||
returnRaw: true,
|
||||
returnRaw: false,
|
||||
...config
|
||||
});
|
||||
}
|
||||
@@ -404,15 +409,17 @@ export { ErrorType, RequestError };
|
||||
// 默认导出
|
||||
export default {
|
||||
request,
|
||||
// 主要方法 - 返回完整ApiResult(适配后台生成代码)
|
||||
get,
|
||||
post,
|
||||
put,
|
||||
patch,
|
||||
del,
|
||||
getRaw,
|
||||
postRaw,
|
||||
putRaw,
|
||||
delRaw,
|
||||
// 便捷方法 - 自动提取data字段
|
||||
getData,
|
||||
postData,
|
||||
putData,
|
||||
delData,
|
||||
ErrorType,
|
||||
RequestError
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user