Install
openclaw skills install @yangaiwu/blog-mini-kit-mys管理 Blog System (FastAPI) 全部 32 个 API 端点:文章/标签/用户/评论/留言/说说/ 文件上传/健康检查/博客页面/后台管理。无认证公开 API,支持 CLI 子命令调用。
openclaw skills install @yangaiwu/blog-mini-kit-mys管理 Blog System (FastAPI) 全部 32 个 API 端点。
references/api-reference.md 为准:严禁根据经验/记忆/猜测自行拼写 API 路径。[blog-mini-kit-mys] 开头(环境变量未注入时用 skill name)> {用户评论}\n\n[blog-mini-kit-mys] {回复}目标系统 API 地址必须在使用前确定。所有命令中的 {base_url} 替换为实际地址(格式 http://<host>:<port>,实际地址见 .project-info/ 配置或环境变量)。
{base_url} 解析优先级:
.project-info/ 目录下 JSON 配置文件(config.BLOG_MINI_KIT_MYS_BASE_URL)BLOG_MINI_KIT_MYS_BASE_URL方式一:环境变量(临时,推荐快速测试)
export BLOG_MINI_KIT_MYS_BASE_URL="http://<host:port>"
方式二:项目知识 JSON 文件(持久化,推荐生产使用)
在项目根目录下创建 .project-info/ 目录,放入任意名称的 .json 文件(脚本递归扫描):
{
"config": {
"BLOG_MINI_KIT_MYS_BASE_URL": "http://<host:port>"
}
}
key 必须按
BLOG_MINI_KIT_MYS_前缀命名(由 skill name 推导),避免与其他系统凭据冲突。 ⚠️.project-info/含敏感配置,不提交到 git 仓库(加入 .gitignore)。
Don't use for: 非本 Blog System 的操作 / 数据库直连操作 / 服务器运维
{base_url}
All endpoints below are relative to this base. 无认证(none)不需要 header。后台管理端点需 admin token。
详细文档见 references/ 下分类文件。端点总览:
| 类别 | 端点数 | 子命令 |
|---|---|---|
| 文章 | 7 | list-articles, create-article, get-article, update-article, delete-article, restore-article, top-articles |
| 标签 | 2 | list-labels, create-label |
| 用户 | 2 | list-users, create-user |
| 评论 | 3 | create-comment, list-comments, delete-comment |
| 留言 | 4 | list-messages, create-message, reply-message, delete-message |
| 说说 | 3 | list-moods, create-mood, delete-mood |
| 文件上传 | 4 | upload-file, upload-files, list-uploads, delete-upload |
| 健康检查 | 1 | health-check |
| 博客页面 | 2 | blog-home, blog-article |
| 后台管理 | 4 | admin-page, admin-login, admin-logout, admin-delete-articles |
⚠️ 标签 API 实际路径为
/api/lables(原系统拼写),子命令用正确拼写labels,脚本内部请求用lables。
admin-login 获取 token(默认 admin/admin,以实际部署为准)BLOG_MINI_KIT_MYS_BASE_URL凭据前缀:由 skill name 推导(blog-mini-kit-mys → BLOG_MINI_KIT_MYS),skill name 转大写下划线。
health-check 确认可达,检查 base_url 是否正确。/api/lables(非 labels),脚本已处理映射,直接调 curl 时注意用 lables。upload-file 字段名 file,upload-files 字段名 files(多值),不能用 JSON body。admin-login 表单提交后从 Set-Cookie 提取,非 JSON 返回;token 放入 admin-delete-articles 的 JSON body(非 header)。get-article / blog-article 文章 heat +1,测试时注意。| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| title (article) | string | 是 | - | 文章标题 |
| content (article) | string | 是 | - | 文章内容(支持 HTML) |
| uid | int | 否 | 1 | 用户 ID |
| lid | int | 否 | 1 | 标签 ID |
| lname | string | 是 | - | 标签名称 |
| uname | string | 是 | - | 用户名 |
| aid | int | 是 | - | 文章 ID(评论/留言关联) |
| mid | int | 是 | - | 留言 ID(回复关联) |
| soft (delete) | bool | 否 | true | true=软删除 false=硬删除 |
| limit (top) | int | 否 | 5 | 热门返回数量(1-20) |
主流程:检查可达性 → 查询资源 → 执行操作。
python3 scripts/blog-mini-kit-mys.py health-check
Expected: {"status":"ok","service":"blog-api","version":"1.0.0"}
python3 scripts/blog-mini-kit-mys.py list-articles --page 1 --size 10
python3 scripts/blog-mini-kit-mys.py list-labels
python3 scripts/blog-mini-kit-mys.py list-users
Expected: {"code":200,"data":[...]}
# 创建
python3 scripts/blog-mini-kit-mys.py create-article --title "标题" --content "内容"
# 详情
python3 scripts/blog-mini-kit-mys.py get-article --article-id 1
# 更新
python3 scripts/blog-mini-kit-mys.py update-article --article-id 1 --title "新标题"
# 删除(软删除)
python3 scripts/blog-mini-kit-mys.py delete-article --article-id 1
# 恢复
python3 scripts/blog-mini-kit-mys.py restore-article --article-id 1
# 热门
python3 scripts/blog-mini-kit-mys.py top-articles --limit 5
python3 scripts/blog-mini-kit-mys.py create-label --lname "新标签"
python3 scripts/blog-mini-kit-mys.py create-user --uname "newuser" --pwd "123456"
python3 scripts/blog-mini-kit-mys.py create-comment --uid 1 --aid 1 --content "评论"
python3 scripts/blog-mini-kit-mys.py list-comments --aid 1
python3 scripts/blog-mini-kit-mys.py create-message --uid 1 --content "留言"
python3 scripts/blog-mini-kit-mys.py reply-message --uid 1 --mid 1 --content "回复"
python3 scripts/blog-mini-kit-mys.py create-mood --content "今天很开心"
python3 scripts/blog-mini-kit-mys.py upload-file --file /path/to/image.jpg
python3 scripts/blog-mini-kit-mys.py upload-files --files a.jpg b.png
python3 scripts/blog-mini-kit-mys.py list-uploads
python3 scripts/blog-mini-kit-mys.py delete-upload --filename abc123.jpg
python3 scripts/blog-mini-kit-mys.py blog-home --page 1
python3 scripts/blog-mini-kit-mys.py blog-article --article-id 1
python3 scripts/blog-mini-kit-mys.py admin-login --username admin --password admin
python3 scripts/blog-mini-kit-mys.py admin-delete-articles --token <token> --ids 1 2
python3 scripts/blog-mini-kit-mys.py capability-list
Expected: {"capability":"capability-list","skill":"blog-mini-kit-mys","endpoint_count":32,...}
每个子命令支持
--format json|md切换输出格式。完整参数说明见references/分类文档。
{"status":"ok"})--help 无语法错误--format md)cd skills/blog-mini-kit-mys/ && python3 scripts/blog-mini-kit-mys.py list-articles --format md[blog-mini-kit-mys] ✅ {操作名称}完成
## 操作结果
| 操作 | 状态 | 资源 ID | 详情 |
|------|------|---------|------|
| {操作名} | ✅ 成功 / 🔴 失败 | {id} | {简要说明} |
**API 地址**:{base_url}
**执行时间**:{UTC ISO}
失败时:
[blog-mini-kit-mys] 🔴 {操作名称}失败
## 错误分析
- **操作**:{操作名}
- **错误**:{API 返回的错误信息}
- **HTTP 状态码**:{code}
- **原因**:{分析原因}
### 修复建议
{修复步骤}
成功时:
分析结论:
- 场景:博客 API 操作
- Skill:blog-mini-kit-mys v1.0.0
- 操作:{subcommand} {params}
- 结果:✅ 成功({API 返回的关键数据摘要})
- 必须执行:Issue 评论汇总结果 → 任务结束
失败时:
分析结论:
- 场景:博客 API 操作
- Skill:blog-mini-kit-mys v1.0.0
- 操作:{subcommand} {params}
- 结果:🔴 失败({错误原因})
- 必须执行:Issue 评论报告错误 → 任务结束
完成所有业务动作后,在最终答复末尾输出以下 JSON 块并结束任务:
{
"actions": ["{具体执行的操作}"],
"conclusion": "{处理结论}",
"artifacts": ["{产生的产物}"],
"next_step": "{下一步建议}",
"issue_summary": "{Issue 最新聚合结论,紧凑文本,用 | 分隔}"
}
注意:只输出一个 JSON 块,放在答复末尾。