request-openapi.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <script lang="ts" setup>
  2. import type { UserItem } from '@/service'
  3. import { infoUsingGet, listAllUsingGet } from '@/service'
  4. const loading = ref(false)
  5. const error = ref<Error | null>(null)
  6. const data = ref<UserItem>()
  7. // openapi 请求示例
  8. async function getUserInfo() {
  9. try {
  10. loading.value = true
  11. const res = await infoUsingGet({})
  12. console.log(res)
  13. data.value = res
  14. error.value = null
  15. }
  16. catch (err) {
  17. error.value = err as Error
  18. data.value = null
  19. }
  20. finally {
  21. loading.value = false
  22. }
  23. }
  24. // openapi + useRequest 请求示例
  25. const { data: data2, loading: loading2, run } = useRequest(() => listAllUsingGet({}), {
  26. immediate: false,
  27. })
  28. </script>
  29. <template>
  30. <view class="p-6 text-center">
  31. <view class="my-4 text-center">
  32. 1)直接使用 openapi 生成的请求
  33. </view>
  34. <view class="my-4 text-center">
  35. <button type="primary" size="mini" class="w-160px" @click="getUserInfo">
  36. 发送请求
  37. </button>
  38. <view class="text-xl">
  39. 请求数据如下
  40. </view>
  41. <view class="text-green leading-8">
  42. {{ JSON.stringify(data) }}
  43. </view>
  44. </view>
  45. <view class="my-4 text-center">
  46. 2)直接使用 openapi + useRequest 生成的请求
  47. </view>
  48. <view class="my-4 flex items-center gap-2 text-center">
  49. <button type="primary" size="mini" class="w-160px" @click="run">
  50. 发送请求
  51. </button>
  52. </view>
  53. <view class="text-xl">
  54. 请求数据如下
  55. </view>
  56. <view class="text-green leading-8">
  57. {{ JSON.stringify(data2) }}
  58. </view>
  59. </view>
  60. </template>