refactor(http): 重构http模块结构,优化文件组织

- 将alova和vue-query相关文件移动到http目录下
- 统一工具类文件到http/tools目录
- 删除冗余的service/app目录
- 更新相关引用路径
- 添加新的vue-query实现文件
This commit is contained in:
feige996
2025-08-05 17:49:33 +08:00
parent fc92d23c4a
commit 17e5030dfe
22 changed files with 64 additions and 1055 deletions

View File

@@ -2,8 +2,8 @@
目前unibest支持3种请求库
- 菲鸽简单封装的 `简单版本http`路径src/http/http.ts对应的示例在 src/api/foo.ts
- `alova 的 http`路径src/http/request/alova.ts对应的示例在 src/api/foo-alova.ts
- `vue-query`, 路径src/utils/request.ts, 目前主要用在自动生成接口,详情看(https://unibest.tech/base/17-generate),示例在 src/service/app 文件夹
- `alova 的 http`路径src/http/alova.ts对应的示例在 src/api/foo-alova.ts
- `vue-query`, 路径src/http/vue-query.ts, 目前主要用在自动生成接口,详情看(https://unibest.tech/base/17-generate),示例在 src/service/app 文件夹
## 如何选择
如果您以前用过 alova 或者 vue-query可以优先使用您熟悉的。

View File

@@ -1,11 +1,11 @@
import type { uniappRequestAdapter } from '@alova/adapter-uniapp'
import type { IResponse } from './types'
import type { IResponse } from './tools/types'
import AdapterUniapp from '@alova/adapter-uniapp'
import { createAlova } from 'alova'
import { createServerTokenAuthentication } from 'alova/client'
import VueHook from 'alova/vue'
import { toast } from '@/utils/toast'
import { ContentTypeEnum, ResultEnum, ShowMessage } from './enum'
import { ContentTypeEnum, ResultEnum, ShowMessage } from './tools/enum'
// 配置动态Tag
export const API_DOMAINS = {

View File

@@ -1,7 +1,7 @@
import { useUserStore } from '@/store'
import { getEnvBaseUrl } from '@/utils'
import { platform } from '@/utils/platform'
import { stringifyQuery } from './queryString'
import { stringifyQuery } from './tools/queryString'
export type CustomRequestOptions = UniApp.RequestOptions & {
query?: Record<string, any>

30
src/http/vue-query.ts Normal file
View File

@@ -0,0 +1,30 @@
import type { CustomRequestOptions } from '@/http/interceptor'
import { http } from './http'
/*
* openapi-ts-request 工具的 request 跨客户端适配方法
*/
export default function request<T = unknown>(
url: string,
options: Omit<CustomRequestOptions, 'url'> & {
params?: Record<string, unknown>
headers?: Record<string, unknown>
},
) {
const requestOptions = {
url,
...options,
}
if (options.params) {
requestOptions.query = requestOptions.params
delete requestOptions.params
}
if (options.headers) {
requestOptions.header = options.headers
delete requestOptions.headers
}
return http<T>(requestOptions)
}