FastAPI Engagement API需求
🎯 FastAPI Engagement API 需求文档
本文档详细说明了Paimon1999主题所需的访问计数和点赞API接口规范。
📋 API 端点规范
1. 访问计数 (Views) API
POST /api/views/{post_id}
功能:记录文章访问计数
- 方法:POST
- 路径参数:
post_id: 文章ID (如 “2025/12/27/undefined-1/“)
- 请求头:
Content-Type: application/json
- 响应:
1
2
3{
"views": 123
} - 状态码:
200: 成功404: 文章不存在500: 服务器错误
GET /api/views/{post_id}
功能:获取文章访问计数
- 方法:GET
- 路径参数:
post_id: 文章ID
- 响应:
1
2
3{
"views": 123
} - 状态码:
200: 成功404: 文章不存在
2. 点赞 (Likes) API
POST /api/likes/{post_id}
功能:给文章点赞
- 方法:POST
- 路径参数:
post_id: 文章ID
- 请求头:
Content-Type: application/json
- 响应:
1
2
3{
"likes": 45
} - 状态码:
200: 成功404: 文章不存在
DELETE /api/likes/{post_id}
功能:取消文章点赞
- 方法:DELETE
- 路径参数:
post_id: 文章ID
- 响应:
1
2
3{
"likes": 44
} - 状态码:
200: 成功404: 文章不存在
GET /api/likes/{post_id}
功能:获取文章点赞数
- 方法:GET
- 路径参数:
post_id: 文章ID
- 响应:
1
2
3{
"likes": 45
} - 状态码:
200: 成功404: 文章不存在
🏗️ FastAPI 实现示例
1 | from fastapi import FastAPI, HTTPException |
🗄️ 数据库建议
生产环境数据存储
1 | -- 文章表 |
🔧 部署配置
环境变量
1 | # FastAPI 配置 |
Docker 部署
1 | FROM python:3.9-slim |
📊 监控和日志
建议监控指标
- API响应时间
- 错误率
- 每日访问/点赞统计
- 数据库连接状态
日志记录
1 | import logging |
🔒 安全考虑
- 速率限制:防止API滥用
- 输入验证:验证post_id格式
- CORS配置:限制允许的域名
- HTTPS:生产环境必须使用HTTPS
- API密钥:可选的身份验证
🚀 启动命令
1 | # 开发环境 |
📝 注意事项
- 前端JavaScript会自动处理API失败的情况,使用front matter中的数据作为fallback
- 确保API服务器与Hexo服务器在同一域名或正确配置CORS
- 生产环境建议使用Redis或数据库进行数据持久化
- 考虑实现用户会话管理以更好地跟踪用户行为