使用 API

每个 Flarum 论坛都有一个公开的 JSON API,可以对论坛数据进行读和写。它符合JSON-API 1.0 规范

身份验证

API 使用基于令牌的身份验证机制。某些终端不需要身份验证。您可以通过 /api/token 取得一个令牌:

  1. POST /api/token HTTP/1.1
  2. {
  3. "identification": "Toby",
  4. "password": "pass7word"
  5. }
  6. HTTP/1.1 200 OK
  7. {
  8. "token": "YACub2KLfe8mfmHPcUKtt6t2SMJOGPXnZbqhc3nX",
  9. "userId": "1"
  10. }

然后,您可以在后续的请求头中,包含此身份验证令牌:

  1. GET /api/forum HTTP/1.1
  2. Authentication: Token YACub2KLfe8mfmHPcUKtt6t2SMJOGPXnZbqhc3nX

论坛

  • GET /api/forum - 关于论坛的信息,包括 groups 和 tags
  • PATCH /api/forum - 更新论坛配置

Discussion 讨论

  • GET /api/discussions - 获取所有的讨论(默认排序规则为 -time
    • filter[q] - 根据 username/gambits 过滤
  • POST /api/discussions - 创建一个新的讨论
  • GET /api/discussions/:id - 通过 ID 获取讨论
  • PATCH /api/discussions/:id - 更新一个讨论
  • DELETE /api/discussions/:id - 删除一个讨论

Posts 帖子

  • GET /api/posts - 获取所有帖子
    • filter[discussion] - 根据 discussion ID 过滤
    • filter[user] - 根据 user ID 过滤
    • filter[number] - 根据数字 (discussion 中的位置)
    • filter[type] - 根据 post type 过滤
  • POST /api/posts - 创建一个新的帖子
  • GET /api/posts/:id - 根据 ID 获取一个帖子
  • PATCH /api/posts/:id - 更新一个帖子
  • DELETE /api/posts/:id - 删除一个帖子

Users 用户

  • GET /api/users - 获取所有用户
    • filter[q] - 根据 username/gambits 过滤
  • POST /api/users - 注册新用户
  • GET /api/users/:idOrUsername - 根据 ID 和 username 获取一个用户
  • PATCH /api/users/:id - 更新一个用户
  • DELETE /api/users/:id - 删除一个用户
  • POST /api/users/:id/avatar - 更新用户头像
  • DELETE /api/users/:id/avatar - 删除用户头像

Groups 组

  • GET /api/groups - 获取所有组
  • POST /api/groups - 创建一个新的组
  • PATCH /api/groups/:id - 更新一个组
  • DELETE /api/groups/:id - 删除一个组

Notifications 通知

  • GET /api/notifications - 获取所有通知
  • PATCH /api/notifications/:id - 将一个通知标记为已读

Tags 标签

  • POST /api/tags - 创建一个新标签
  • PATCH /api/tags/:id - 更新一个标签
  • DELETE /api/tags/:id - 删除一个标签

译者:@justjavac