基于实际运行后端的接口文档。所有示例均来自线上真实响应,接口路径与字段以本文档为准。
所有接口基于 JSON 传输,编码为 UTF-8。生产环境基地址:https://riaby.6661003.xyz(本地联调为 http://localhost:8100)。
| 接口 | 方法 | 鉴权 | 说明 |
|---|---|---|---|
| /api/articles | GET | 无需 | 获取公开文章列表 |
| /article/<slug> | GET | 无需 | 文章详情页(HTML) |
| /api/article | POST | 需服务端授权 | 创建文章 |
| /api/article/delete | POST | 需服务端授权 | 按 id 删除文章 |
| /api/contact | POST | 无需(带防滥用) | 提交联系留言 |
| /api/messages | GET | 需服务端授权 | 获取最近留言(管理用途) |
| /admin | GET | 需服务端授权 | 管理后台页面 |
请求与响应示例中的 JSON 与字段均与线上返回一致。写操作接口(创建/删除文章、留言)需要按服务端配置的授权机制调用,未授权请求会返回 403 或 401。
返回全部可见文章的元数据列表,按发布日期倒序排列。
请求示例:
curl https://riaby.6661003.xyz/api/articles
响应示例(HTTP 200):
[
{
"id": 3,
"slug": "v3",
"title": "RiaBy Brain V3 决策引擎设计公开",
"tag": "产品动态",
"summary": "介绍 V3 风险评分模型与处置建议生成的设计思路……",
"date": "2026-08",
"read_min": "7 分钟"
},
{
"id": 1,
"slug": "c2",
"title": "警惕针对公开服务的新型 C2 信标伪装",
"tag": "威胁情报",
"summary": "近期观测到攻击者将命令控制流量伪装为常规业务请求……",
"date": "2026-10",
"read_min": "6 分钟"
}
]通过 slug 获取文章详情页。命中数据库记录时渲染动态模板;存在同名静态页时返回静态页;均不存在时返回 404 页面。
请求示例:
curl https://riaby.6661003.xyz/article/c2
响应:
写入一篇新文章。请求体为 JSON,字段如下。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | 是 | 文章标题,不能为空 |
| slug | string | 否 | 文章唯一标识,缺省自动生成 |
| tag | string | 否 | 分类标签,默认"威胁情报" |
| summary | string | 否 | 摘要 |
| content | string | 否 | 正文 HTML |
| date | string | 否 | 发布日期,格式 YYYY-MM,默认当前月份 |
| read_min | string | 否 | 阅读时长,默认"5 分钟" |
请求示例:
curl -X POST https://riaby.6661003.xyz/api/article \
-H "Content-Type: application/json" \
-d '{"title":"新文章标题","slug":"demo","tag":"威胁情报","summary":"摘要内容","content":"<p>正文</p>"}'响应示例(HTTP 200):
{"ok": true}按文章 id 删除记录。
请求示例:
curl -X POST https://riaby.6661003.xyz/api/article/delete \
-H "Content-Type: application/json" \
-d '{"id": 3}'响应示例(HTTP 200):
{"ok": true}联系页表单使用的接口,同时支持 JSON 与表单编码提交。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 称呼,最长 50 字符 |
| string | 否 | 邮箱,最长 100 字符 | |
| content | string | 是 | 留言内容,最长 2000 字符,不能为空 |
请求示例:
curl -X POST https://riaby.6661003.xyz/api/contact \
-H "Content-Type: application/json" \
-d '{"name":"示例用户","email":"[email protected]","content":"想咨询专业版方案"}'响应示例(HTTP 200):
{"ok": true}管理用途:返回最近 100 条留言,按时间倒序。
响应示例(HTTP 200):
[
{"id": 12, "name": "示例用户", "email": "[email protected]", "content": "想咨询专业版方案", "created_at": "2026-10-22 10:00:00"}
]文章与留言的管理页面,仅供授权管理员访问。
响应:HTTP 200 返回管理后台 HTML 页面;未授权访问由前置层拦截。
接口统一使用 HTTP 状态码表达结果;业务失败时返回 {"ok": false, "error": "..."}。
| 状态码 | 场景 | 响应体示例 |
|---|---|---|
| 400 | 创建文章缺少 title | {"ok": false, "error": "标题不能为空"} |
| 400 | 创建文章 slug 冲突 | {"ok": false, "error": "slug 已存在,请更换"} |
| 400 | 留言 content 为空 | {"ok": false, "error": "留言内容不能为空"} |
| 401 / 403 | 写操作未授权 | 由服务端授权层返回 |
| 404 | 文章详情不存在 | 返回 404 页面 |
| 405 | 方法不允许(如对 GET 接口发 POST) | 由框架默认返回 |
| 500 | 服务端内部错误 | 请保留请求参数并联系我们排查 |