Skip to content

cc2562/RicePanelAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RicePanel API Plugin for Typecho

RicePanel API 是一个专为 Typecho 开发的插件,旨在为您自己的移动端提供一套简单、高效、RESTful 风格的数据管理 API。

安装与配置

  1. 将本目录重命名为 RicePanel,然后放入 Typecho 的 usr/plugins/ 目录下。 注意RicePanel的大小写一定要正确
  2. 登录 Typecho 后台,在“控制台 -> 插件”中启用 RicePanel
  3. 启用后,左侧导航栏会出现 RicePanel 菜单。点击 API Key 管理
  4. 设置一个复杂的 API Key。系统将使用 BCRYPT 算法进行单向加盐哈希存储,确保数据库安全。

API 基础信息

  • 接口基址 (Base URL)http://your-typecho-domain.com/index.php/action/ricepanel
  • 鉴权方式:所有的 API 请求都必须在 URL 或 POST 表单中携带 key 参数。

    安全提示:服务端仅存储密钥的哈希值。每次请求时,系统会实时校验您提供的明文 key。建议在生产环境使用 HTTPS 协议传输。

  • 返回格式:所有接口统一返回 JSON 格式:
    {
        "code": 200,      // 200 表示成功,非 200 表示错误(400 参数错误,401 鉴权失败,404 不存在,500 服务端错误等)
        "msg": "success", // 状态描述或错误详情信息
        "data": {}        // 具体的数据负载(可能为 null、数组或对象)
    }

API 接口详情

1. 博客统计信息 (Stat)

获取博客的基础统计数据(文章总数、评论总数等)。

  • URL: ?do=stat
  • Method: GET
  • 参数:
    • key (必需): API Key
  • 返回示例:
    "data": {
      "publishedPostsNum": 97,
      "publishedCommentsNum": 377,
      "categoriesNum": 4,
      "publishedPagesNum": 4
    }

2. 获取文章列表 (Posts)

分页获取博客文章摘要列表。

  • URL: ?do=posts
  • Method: GET
  • 参数:
    • key (必需): API Key
    • page (可选): 页码,默认为 1
    • pageSize (可选): 每页条数,默认为 10
    • status (可选): 筛选状态。默认为 publish (公开)。
      • 在 Typecho 1.2+ 中,传 draft 将匹配 post_draft 类型;
      • all 将匹配 postpost_draft 类型。
  • 返回: 文章摘要列表。
    "data": {
      "posts": [
        {
          "cid": 1406,
          "title": "测试文章标题",
          "created": 1766842020,
          "author": "admin",
          "status": "publish",
          "tags": ["API", "测试"],
          "commentsNum": 4
        }
      ],
      "page": 1,
      "pageSize": "10",
      "total": 97
    }

3. 获取单篇文章详情 (包含 Markdown 原文)

  • URL: ?do=post
  • Method: GET
  • 参数:
    • key (必需): API Key
    • cid (必需): 文章的 CID
  • 返回示例:
    "data": {
      "cid": 1406,
      "title": "测试文章标题",
      "slug": "slug-test-post",
      "created": 1766842020,
      "modified": 1766842050,
      "text": "这是一篇**Markdown**格式的文章...",
      "author": "admin",
      "status": "publish",
      "allowComment": "1",
      "allowPing": "1",
      "allowFeed": "1",
      "tags": ["API", "测试"],
      "commentsNum": 4
    }

4. 获取内容(文章/页面)基本信息 (不含原文正文)

  • URL: ?do=postBasic
  • Method: GET
  • 说明: 传入任意文章或页面的 CID,返回其标题、状态和类型。若查询的是文章,则额外返回其绑定的分类和标签数组。
  • 参数:
    • key (必需): API Key
    • cid (必需): 内容的 CID
  • 返回示例 (文章):
    "data": {
      "cid": 1406,
      "title": "测试文章标题",
      "slug": "slug-test-post",
      "type": "post",
      "status": "publish",
      "tags": ["API", "测试"],
      "categories": ["默认分类"]
    }
  • 返回示例 (页面):
    "data": {
      "cid": 20,
      "title": "关于我们",
      "slug": "about-us",
      "type": "page",
      "status": "publish"
    }

5. 发布/更新文章 (Save Post)

新建一篇 Markdown 格式的文章,或者更新现有文章。

  • URL: ?do=savePost
  • Method: POST
  • 参数:
    • key (必需): API Key
    • cid (可选): 文章 ID。若传入此参数则为更新现有文章,否则为创建新文章。
    • title (必需): 文章标题
    • text (必需): 文章 Markdown 源内容。系统将自动识别 HTML 渲染
    • tags (可选): 文章标签。多个标签之间用逗号 , 或者 隔开
    • status (可选): 文章状态:publish (公开,默认), hidden (隐藏), waiting (待审核)
    • allowComment (可选): 允许评论 (1 允许, 0 禁止,默认 1)
    • allowPing (可选): 允许 Ping (1 允许, 0 禁止,默认 1)
    • allowFeed (可选): 出现在聚合中 (1 允许, 0 禁止,默认 1)
    • category (可选): 文章分类。支持传入分类名称或 mid,多个以英文逗号 , 分隔。若名称不存在则会自动创建分类。
    • isDraft (可选): 是否为草稿 (1 是, 0 否,默认 0)。启用后在 Typecho 1.2+ 中 type 会设置为 post_draft
    • slug (可选): 文章固定链接别名(Permalink Slug)。若不传入,系统将自动使用 cid 作为默认 slug,保证伪静态链接可访问。若传入值与已有内容冲突,将自动追加 -cid 后缀。
  • 返回示例:
    "data": {
      "cid": 1421
    }

6. 删除文章 (Delete Post)

永久删除指定文章。

  • URL: ?do=deletePost
  • Method: POST
  • 参数:
    • key (必需): API Key
    • cid (必需): 需要删除的文章 ID
  • 返回: 成功状态码 200。

7. 获取评论列表 (Comments)

分页获取符合特定状态的评论列表。

  • URL: ?do=comments
  • Method: GET
  • 参数:
    • key (必需): API Key
    • page (可选): 页码,默认为 1
    • pageSize (可选): 每页条数,默认为 10
    • status (可选): 评论状态。可选值:approved (通过,默认), waiting (待审核), spam (垃圾评论)
  • 返回示例 (含最新补充的用户邮件及网址信息):
    "data": {
      "comments": [
        {
          "coid": 527,
          "cid": 1385,
          "author": "访客昵称",
          "mail": "example@foxmail.com",
          "url": "https://example.com",
          "text": "这是一条评论的内容",
          "created": 1769520506,
          "status": "approved"
        }
      ],
      "page": 1,
      "pageSize": "10",
      "total": 377
    }

8. 管理评论状态/删除评论 (Manage Comment)

快速通过、拒绝、标记垃圾或永久删除某条评论。

  • URL: ?do=manageComment
  • Method: POST
  • 参数:
    • key (必需): API Key
    • coid (必需): 目标评论的 ID
    • action (必需): 执行的操作。有效值:approved (通过), waiting (移入待审核), spam (标记为垃圾), delete (永久删除)
  • 返回: 成功状态码 200。

9. 快速回复评论 (Reply Comment)

以管理员身份(自动使用管理账号的用户名/邮箱信息)回复指定的访客评论。

  • URL: ?do=replyComment
  • Method: POST
  • 参数:
    • key (必需): API Key
    • parentCoid (必需): 要回复的父级评论 ID
    • text (必需): 回复的具体内容文本
  • 返回示例 (返回新生成的回复评论 ID):
    "data": {
      "coid": 536
    }

10. 获取页面列表 (Pages)

分页获取独立页面摘要列表。

  • URL: ?do=pages
  • Method: GET
  • 参数:
    • key (必需): API Key
    • page (可选): 页码,默认为 1
    • pageSize (可选): 每页条数,默认为 10
    • status (可选): 筛选状态。默认为 publish (公开)。
      • 在 Typecho 1.2+ 中,传 draft 将匹配 page_draft 类型;
      • all 将匹配 pagepage_draft 类型。
  • 返回: 页面摘要列表。数据结构与 Posts 一致 (同样会在其字典项中增加返回 status 字段)。

11. 获取单页详情 (包含 Markdown 原文)

  • URL: ?do=page
  • Method: GET
  • 参数:
    • key (必需): API Key
    • cid (必需): 页面的 CID
  • 返回示例:
    "data": {
      "cid": 20,
      "title": "关于我们",
      "slug": "about-us",
      "created": 1645000000,
      "modified": 1645000050,
      "text": "这是单页面的**Markdown**原文内容...",
      "author": "admin",
      "status": "publish",
      "allowComment": "1",
      "allowPing": "1",
      "allowFeed": "1",
      "tags": [],
      "commentsNum": 0
    }

12. 发布/更新页面 (Save Page)

新建或编辑一个独立页面。

  • URL: ?do=savePage
  • Method: POST
  • 参数:
    • key (必需): API Key
    • cid (可选): 页面 ID。传此参数为更新,否则为创建。
    • title (必需): 页面标题
    • text (必需): 页面 Markdown 源内容。系统将自动识别 HTML 渲染
    • status (可选): publishhidden
    • isDraft (可选): 是否为草稿 (1 是, 0 否,默认 0)。启用后在 Typecho 1.2+ 中 type 会设置为 page_draft
    • slug (可选): 页面固定链接别名。若不传入,系统将自动使用 cid 作为默认 slug。若传入值冲突,将自动追加 -cid 后缀。
    • allowComment (可选): 允许评论 (1 允许, 0 禁止,默认 1)
    • allowPing (可选): 允许 Ping (1 允许, 0 禁止,默认 1)
    • allowFeed (可选): 出现在聚合中 (1 允许, 0 禁止,默认 1)
  • 返回示例:
    "data": {
      "cid": 1425
    }

13. 删除页面 (Delete Page)

永久删除指定页面。

  • URL: ?do=deletePage
  • Method: POST
  • 参数:
    • key (必需): API Key
    • cid (必需): 需要删除的页面 ID
  • 返回: 成功状态码 200。

14. 获取近期所有评论 (Recent Comments)

无视审核状态,基于降序创建时间直接提供最新互动数据的全景概览。

  • URL: ?do=recentComments
  • Method: GET
  • 参数:
    • key (必需): API Key
    • pageSize (可选): 提取指定数量的最新评论,默认为 5 篇。

15. 上传图片或附件 (Upload)

依托系统原生上传处理能力,直接将客户端附件推入 Typecho usr/uploads 生命周期循环并获取公开地址。

  • URL: ?do=upload
  • Method: POST (需由客户端使用 multipart/form-data 协议发送)
  • 表单数据:
    • file (必需): 具体提交上传的文件资料块。
  • URL 查询参数:
    • key (必需): API 密钥
    • cid (可选): 提供此参数时,上传完成后将形成依附关联挂载到此父级文档内。
  • 返回示例: 给出该文件最终生成的资源 CID,大小与外部可以直接访问引用的 URL。
    "data": {
      "cid": 1457,
      "name": "test_upload.gif",
      "size": 43,
      "url": "http://mytestblog.local/usr/uploads/2026/02/3417602817.gif"
    }

16. 搜索文章 (Search Posts)

仅针对 post 类型的文章进行标题和正文的关键字匹配。

  • URL: ?do=searchPosts
  • Method: GET
  • 参数:
    • key (必需): API Key
    • keyword (必需): 搜索关键词
    • page (可选): 页码,默认为 1
    • pageSize (可选): 每页条数,默认为 10
    • status (可选): 筛选状态。默认为 publish
      • 在 Typecho 1.2+ 中,传 draft 将匹配 post_draft 类型;
      • all 将匹配 postpost_draft 类型。
  • 返回: 分页的文章摘要列表。

17. 获取分类列表 (Categories)

  • URL: ?do=categories
  • Method: GET
  • 参数:
    • key (必需): API Key
  • 返回示例:
    "data": {
      "categories": [
        {
          "mid": 2,
          "name": "默认分类",
          "slug": "default",
          "description": "",
          "count": 10,
          "parent": 0
        }
      ]
    }

18. 管理分类 (Manage Category)

支持分类的新建、重命名和删除。

  • URL: ?do=manageCategory
  • Method: POST
  • 参数:
    • key (必需): API Key
    • action: 操作类型。支持 create (新建), rename (重命名), delete (删除)
    • name: 分类名称 (用于 create 和 rename)
    • slug: 分类缩略名 (可选,用于 create)
    • mid: 分类 ID (用于 rename 和 delete)
    • description: 描述 (用于 create)
    • parent: 父级 ID (用于 create)
  • 返回: 成功状态码 200。

About

Typecho插件,旨在为您自己的移动端提供一套简单、高效、RESTful 风格的数据管理 API。

Resources

Stars

8 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages