Rokcso's blog

Post Upvote API 手册

🔄 English

Post Upvote APIhugo-bearblog-neo 中 Upvote 功能的后端服务。基于 Cloudflare Workers + KV,可以非常方便地自部署。

Upvote 功能:支持用户对单篇文章进行 Upvote,统计每篇文章的 Upvote 数,判断用户对单篇文章的 Upvote 状态。

部署指南

部署 Worker

注册/登录 Cloudflare 后台,前往 Workers 模块后点击 Create(下图 2 处)。

create-worker-1

点击 Create Worker(下图 3 处)。

create-worker-2

随便输入一个名称(比如 post-upvote)后点击 Deploy(下图 5 处)。

create-worker-3

然后点击 Edit code(下图 6 处)。

edit-worker-code-1

删除代码编辑器(下图 7 处)中原有的代码,将本项目 worker.js 中的代码完全复制粘贴到代码编辑器中,点击 Deploy(下图 8 处)。

edit-worker-code-2

创建 KV namespace

注册/登录 Cloudflare 后台,前往 KV 模块后点击 Create(下图 10 处)。

create-kv-1

随便输入一个名称(比如 upvote-count)后点击 Add(下图 12 处)。

create-kv-2

用相同的步骤再创建一个 KV namespace,依然可以随便命名(比如 upvote-record)。

为 Worker 绑定 KV namespace

注册/登录 Cloudflare 后台,前往 Workers 模块后点击进入刚刚创建的 Worker(如本案例中下图 14 处的 post-upvote)。

binding-kv-1

前往该 Worker 中的 Settings -> Bindings,点击 Add(下图 17 处)。

binding-kv-2

选择 KV namespace 后输入 Variable name 为 UPVOTE_COUNT,然后选择一个刚刚创建的 KV namespace(比如 upvote-count),随后点击 Save(下图 20 处)。

binding-kv-3

用相同的步骤再创建一个 Variable name 为 UPVOTE_RECORD,选择刚刚创建的另一个 KV namespace(比如 upvote-record),随后点击 Save。

正确的配置应如下图 21 处,Variable name(即 UPVOTE_COUNTUPVOTE_RECORD)一定不能错。

binding-kv-4

测试

注册/登录 Cloudflare 后台,前往 Workers 模块后点击进入刚刚创建的 Worker,进入该 Worker 中的 Settings -> Domains & Routes,此处默认启用的 workers.dev 域名后对应的 Value(下图 22 处)即为该 Worker 的域名。

或者直接点击下图 23 处访问该 Worker 的域名。

test-api-1

通过浏览器访问该 Worker 的域名后如果能看到如下图提示即为部署成功。

test-api-2

注意事项

中国境内可能无法顺畅访问 Cloudflare Workers 的 workers.dev 域名,可以通过为该 Worker 添加一个自定义域名解决。

custom-domain-1

如何在 hugo-bearblog-neo 中启用 Upvote 功能?

详见 hugo-bearblog-neo 提供的 使用指南

鸣谢

感谢 bearblog 创造了 Bear Blog,感谢 hugo-bearblog 将 Bear Blog 带到了 Hugo

感谢 Emactionhugo-cf-worker 启发了本项目的实现思路。

感谢 Cloudflare 提供了本项目得以实现的所有功能和资源。

#create