这是重构集体网站的后期筹备之一。用于统计每个页面和整个站点的访问量。后续如果评论零碎有不错的抉择的话另说,不然也可能会再退出评论零碎的相干内容整合在一起。
该我的项目技术栈:
- Typescript
- Cloudflare Wrangler
- Worktop (封装 Worker 的罕用办法和反对 Router)
- Webpack
目前只有 Serverless 的实现,还没有 SDK,但能够封装 fetch 之类的调用,也非常简单。后续看是否须要,如果关注的人多起来,我也会多封装一些 SDK、工具脚手架之类的。
应用阐明
第一步,Fork 本我的项目,并 Clone 至本地。
- 源码:https://github.com/willin/clo…
- 镜像:https://gitee.com/willin/clou…
第二步,配置环境
# 装置命令行
npm install -g @cloudflare/wrangler
# 登录 Cloudflare
wrangler login
# 创立 KV 存储桶
wrangler kv:namespace create "views" --env production
关上 wrangler.toml
,批改以下配置:
- account_id
- zone_id
- route
- kv_namespaces 中的 id
通过 Github Actions 主动部署,或者手动执行 wrangler publish --env production
。
须要在仓库设置中,配置 Secrets。名称为:CF_API_TOKEN
,传入 Cloudflare 的 API Token。
API Token 生成拜访:https://dash.cloudflare.com/p…,抉择应用模板 Edit Cloudflare Workers
创立即可。
配置胜利后须要给 DNS 中增加一条 A 解析,设置为:192.0.2.1
并通过 CDN 减速。
API
PUT /pv?slug=optional
QueryString 参数:
slug
:string 可选
如果不传,或传入 total
,则返回为总计点击量。
{
"result": {
"slug": "total",
"pv": 10
}
}
P.S. 其中,GET 申请也能够拜访,但仅当 PUT 申请时,会额定将拜访计数累加。
GET /list?slugs=optional,optional
QueryString 参数:
slugs
:string 可选,请将 string[] 用,
分隔
如果不传,则返回为总计点击量。
{
"result": [
{
"slug": "total",
"pv": 10
},
// ...
]
}
LICENSE
Apache License 2.0