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 @@
+
+ 点击请求
+ sse请求
+
\ 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