From 4edda11e68bd1a52528dd6c5c9ef8aef28120141 Mon Sep 17 00:00:00 2001 From: DebugIsFalse <511418503@qq.com> Date: Wed, 15 May 2024 19:40:11 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0fetch=E8=AF=B7?= =?UTF-8?q?=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composables/useFetchRequest.js | 33 +++++++++++++++++++++++++ pages/md.vue | 45 ++++++++++++++++++++++++++++++++-- server/api/fetchMarkdown.js | 12 +++++++++ server/api/mock/[...slug].js | 9 +++++++ 4 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 composables/useFetchRequest.js create mode 100644 server/api/fetchMarkdown.js create mode 100644 server/api/mock/[...slug].js diff --git a/composables/useFetchRequest.js b/composables/useFetchRequest.js new file mode 100644 index 0000000..d269fb7 --- /dev/null +++ b/composables/useFetchRequest.js @@ -0,0 +1,33 @@ +const BASE_URL = 'http://localhost:3000'; +const useFetchRequest = (baseUrl) => { + baseUrl = baseUrl || BASE_URL; + const config = { + headers: {} + }; + const loading = ref(false); + const fetchRequest = (url, fetchConfig) => { + url = `${BASE_URL}${url}`; + fetchConfig = fetchConfig || {}; + fetchConfig.method = (fetchConfig.method || 'get').toLocaleUpperCase(); + if (!fetchConfig['Content-Type']) { + fetchConfig['Content-Type'] = 'application/json'; + } + fetchConfig = Object.assign(config, fetchConfig); + return window.fetch(url, fetchConfig).then(async (response) => { + let result = await response.text() + try { + result = JSON.parse(result) + } catch(error) { + console.log(error) + } + return result; + }).finally(() => { + loading.value = false + }) + } + return { + loading, + fetchRequest + } +} +export default useFetchRequest; \ No newline at end of file diff --git a/pages/md.vue b/pages/md.vue index fb05bee..f653d74 100644 --- a/pages/md.vue +++ b/pages/md.vue @@ -1,8 +1,49 @@ \ No newline at end of file diff --git a/server/api/fetchMarkdown.js b/server/api/fetchMarkdown.js new file mode 100644 index 0000000..74bd431 --- /dev/null +++ b/server/api/fetchMarkdown.js @@ -0,0 +1,12 @@ +export default defineEventHandler(async (event) => { + // const config = useRuntimeConfig(event) + const cookie = event.headers.get('cookie'); + // console.log(`config:`, event.headers.get('cookie')) + const repo = await $fetch('https://ieditor-ai.inscode.cc/ai/md', { + method: 'POST', + headers: { + cookie + } + }) + return repo +}) \ No newline at end of file diff --git a/server/api/mock/[...slug].js b/server/api/mock/[...slug].js new file mode 100644 index 0000000..51e2c61 --- /dev/null +++ b/server/api/mock/[...slug].js @@ -0,0 +1,9 @@ +import { createRouter, defineEventHandler, useBase } from 'h3' + +const router = createRouter() + +router.get('/test', defineEventHandler(() => { + return { data: 'Hello World' } +})) + +export default useBase('/api/mock', router.handler) -- GitLab