雨墨工具箱 官方博客
🌱 赞助 ⬇ 下载客户端

🔌 对接文档

本文档面向开发者,说明本站(独立前端)如何通过 HTTP 接口跨服务器对接雨墨工具箱后端(后端 A)。

架构说明

本站是完全独立的纯静态网站(静态资源部署在 B 服务器,例如 Nginx、对象存储 OSS/CDN)。本站不在 Flask 服务中托管,所有动态数据(版本信息、公告)都通过浏览器 跨域 HTTP 向「后端 A」请求。

浏览器 ── HTTP (CORS) ──▶ 后端 A(雨墨工具箱 Flask API)
          │
          └── 静态资源(html/css/js)来自 B 服务器

好处:前后端解耦,静态站访问更快、可上 CDN,与业务 API 互不影响。

⚠️ 必须项:后端 A 开启 CORS

浏览器跨域请求会被拦截,因此「后端 A」必须允许本站域名跨域访问。后端是 Flask,使用 flask-cors 全局放开(仅建议开发期;上线建议限定白名单域名):

# backend/app.py(后端 A)
from flask_cors import CORS
CORS(app)   # 开发期放开;上线建议:CORS(app, resources={r"/api/*": {"origins": ["https://你的博客域名"]}})

注意:若后端通过 Nginx 反代,也需要确保返回 Access-Control-Allow-Origin 响应头。

通用返回结构

所有接口统一返回 JSON:

{
  "success": true,          // 是否成功
  "message": "OK",          // 提示信息
  "data": { ... }           // 业务数据
}

可用接口

接口方法说明
/api/healthGET健康检查
/api/home/announcementsGET系统公告列表(首页公告条)
/api/check_update?current_version_code=0GET获取最新版本信息(下载中心)
/api/mod/list?user_id=&page=&page_size=GET公开 MOD 列表(可选)
/api/mod/categoriesGETMOD 分类(可选)

提示:带鉴权的接口(如个人数据、写操作)需要登录 token,博客页面通常只使用公开接口。

接口示例

1. 健康检查

GET /api/health
→ { "success": true, "message": "OK" }

2. 公告列表

GET /api/home/announcements
→ { "success": true, "data": { "items": [ { "tag": "更新", "content": "..." } ] } }

3. 检查更新(下载中心用)

GET /api/check_update?current_version_code=0
→ { "success": true, "data": { "latest_version": "1.0.0", "update_time": "...", ... } }

前端调用示例(JavaScript / fetch)

// js/api.js 已封装以下方法(见本站 js/api.js):
const r = await YumApi.announcements();  // 拉公告
const u = await YumApi.checkUpdate();    // 拉版本
if (r.success) console.log(r.data.items);

接口基地址统一在 js/config.jsBLOG_CONFIG.apiBase 配置,站点迁移只用改这一处。