Files
aiot-uniapp/src/pages/about/components/request-openapi.vue
feige996 a4a720fef5 refactor(http): 移除.promise调用并实现无感刷新token
- 移除所有API调用中的.promise后缀,简化调用方式
- 在http.ts中实现双token无感刷新机制
- 移除测试用的sleep延迟和取消请求相关代码
- 优化401错误处理,支持双token模式自动刷新
2025-09-25 14:54:18 +08:00

65 lines
1.6 KiB
Vue

<script lang="ts" setup>
import type { UserItem } from '@/service'
import { infoUsingGet, listAllUsingGet } from '@/service'
const loading = ref(false)
const error = ref<Error | null>(null)
const data = ref<UserItem>()
// openapi 请求示例
async function getUserInfo() {
try {
loading.value = true
const res = await infoUsingGet({})
console.log(res)
data.value = res
error.value = null
}
catch (err) {
error.value = err as Error
data.value = null
}
finally {
loading.value = false
}
}
// openapi + useRequest 请求示例
const { data: data2, loading: loading2, run } = useRequest(() => listAllUsingGet({}), {
immediate: false,
})
</script>
<template>
<view class="p-6 text-center">
<view class="my-4 text-center">
1)直接使用 openapi 生成的请求
</view>
<view class="my-4 text-center">
<button type="primary" size="mini" class="w-160px" @click="getUserInfo">
发送请求
</button>
<view class="text-xl">
请求数据如下
</view>
<view class="text-green leading-8">
{{ JSON.stringify(data) }}
</view>
</view>
<view class="my-4 text-center">
2)直接使用 openapi + useRequest 生成的请求
</view>
<view class="my-4 flex items-center gap-2 text-center">
<button type="primary" size="mini" class="w-160px" @click="run">
发送请求
</button>
</view>
<view class="text-xl">
请求数据如下
</view>
<view class="text-green leading-8">
{{ JSON.stringify(data2) }}
</view>
</view>
</template>