From 08381ba3213e125da3730b6c03c78e15720d180b Mon Sep 17 00:00:00 2001 From: boyang Date: Wed, 12 Jul 2023 17:38:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B2=E5=86=99=E6=9C=8D=E5=8A=A1=E7=AB=AF?= =?UTF-8?q?=E4=BB=A3=E7=A0=81,=20=E5=8F=91=E5=88=B0=E7=BA=BF=E4=B8=8A?= =?UTF-8?q?=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 ++++++++- api/search-keyword/create.ts | 17 +++++++++++++++++ api/search-keyword/read.ts | 12 ++++++++++++ api/serverless-example/handler.ts | 2 ++ package.json | 3 ++- src/pages/Lanting/model.ts | 5 +++-- 6 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 api/search-keyword/create.ts create mode 100644 api/search-keyword/read.ts diff --git a/README.md b/README.md index ac9dc40..43a5c1f 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,16 @@ Palette: #F4E285 #F4A259 #7A4419 #755C1B # TODOs -[ ] chapter要加数量呀 [ ] I need to fix the broken APIs, using serverless functions +- Likes +- Search words + - API1 - everytime XX is searched, inc + - API2 - read all search words and sort and show + + + +[x] chapter要加数量呀 [x] dev env - 本地nginx, 能跑起来, 有数据 (archives.json也用本地版本) - 点赞数, 要有接口. 要起lanting-server (mysql). 有没有不用的办法... 好像没有. 也可以放弃点赞这个功能 diff --git a/api/search-keyword/create.ts b/api/search-keyword/create.ts new file mode 100644 index 0000000..0ee4071 --- /dev/null +++ b/api/search-keyword/create.ts @@ -0,0 +1,17 @@ +import type { VercelRequest, VercelResponse } from '@vercel/node'; +import { kv } from "@vercel/kv"; + +export default async function handler( + request: VercelRequest, + response: VercelResponse, +) { + await kv.hincrby("search-keyword", request.body, 1); + const keywords = await kv.hgetall("search-keyword"); + response.status(200).json({ + body: request.body, + query: request.query, + cookies: request.cookies, + headers: request.headers, + keywords, + }); +} diff --git a/api/search-keyword/read.ts b/api/search-keyword/read.ts new file mode 100644 index 0000000..4497439 --- /dev/null +++ b/api/search-keyword/read.ts @@ -0,0 +1,12 @@ +import type { VercelRequest, VercelResponse } from '@vercel/node'; +import { kv } from "@vercel/kv"; + +export default async function handler( + request: VercelRequest, + response: VercelResponse, +) { + const keywords = await kv.hgetall("search-keyword"); + response.status(200).json({ + keywords, + }); +} diff --git a/api/serverless-example/handler.ts b/api/serverless-example/handler.ts index 600913e..fe1607b 100644 --- a/api/serverless-example/handler.ts +++ b/api/serverless-example/handler.ts @@ -8,5 +8,7 @@ export default function handler( body: request.body, query: request.query, cookies: request.cookies, + headers: request.headers, + method: request.method, }); } diff --git a/package.json b/package.json index ce0338f..13bbd6f 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,6 @@ "use-merge-value": "^1.0.1" }, "devDependencies": { - "@vercel/node": "^2.15.3", "@ant-design/pro-cli": "^1.0.18", "@commitlint/cli": "^12.1.4", "@commitlint/config-conventional": "^12.1.4", @@ -81,6 +80,8 @@ "@umijs/preset-react": "^1.4.8", "@umijs/preset-ui": "^2.0.9", "@umijs/yorkie": "^2.0.3", + "@vercel/kv": "^0.2.2", + "@vercel/node": "^2.15.3", "carlo": "^0.9.46", "chalk": "^4.0.0", "commitlint": "^12.1.4", diff --git a/src/pages/Lanting/model.ts b/src/pages/Lanting/model.ts index cf5c0e7..a8ad9fc 100644 --- a/src/pages/Lanting/model.ts +++ b/src/pages/Lanting/model.ts @@ -162,8 +162,9 @@ const Model: ModelType = { }, *getSearchList(_, { call, put }) { let responseSearchList = yield call(() => { - return request('https://lanting.wiki/api/archive/search/keyword/read'); + return request('https://lanting.wiki/api/search-keyword/read'); }); + console.log('XXXTEMP', responseSearchList); /** public class SearchKeywordEntity implements Serializable { @@ -238,7 +239,7 @@ const Model: ModelType = { }, }); yield call(() => { - return request('https://lanting.wiki/api/archive/search/keyword/create', { + return request('https://lanting.wiki/api/search-keyword/create', { method: 'post', data: keyword, });