CNode API v1 完整接口文档(JSON 规范整理)

基础路径:CNode社区


一、主题相关接口

1. 获取主题列表

  • 接口名称:获取主题首页列表
  • 请求方式:GET
  • URL:/topics
  • 入参

json

复制代码
{
  "page": "Number 页数",
  "tab": "String 分类(ask/share/job/good)",
  "limit": "Number 每页数量",
  "mdrender": "String true/false 是否渲染markdown"
}

2. 获取主题详情

  • 接口名称:获取主题详情
  • 请求方式:GET
  • URL:/topic/:id
  • 入参

json

复制代码
{
  "mdrender": "String true/false",
  "accesstoken": "String 可选,用于判断收藏/点赞状态"
}

3. 新建主题

  • 接口名称:新建主题
  • 请求方式:POST
  • URL:/topics
  • 入参

json

复制代码
{
  "accesstoken": "String 必填",
  "title": "String 必填",
  "tab": "String ask/share/job/dev",
  "content": "String 必填"
}
  • 出参示例

json

复制代码
{
  "success": true,
  "topic_id": "5433d5e4e737cbe96dcef312"
}

4. 编辑主题

  • 接口名称:编辑主题
  • 请求方式:POST
  • URL:/topics/update
  • 入参

json

复制代码
{
  "accesstoken": "String 必填",
  "topic_id": "String 必填",
  "title": "String 必填",
  "tab": "String ask/share/job",
  "content": "String 必填"
}
  • 出参示例

json

复制代码
{
  "success": true,
  "topic_id": "5433d5e4e737cbe96dcef312"
}

二、主题收藏相关

1. 收藏主题

  • 接口名称:收藏主题
  • 请求方式:POST
  • URL:/topic_collect/collect
  • 入参

json

复制代码
{
  "accesstoken": "String 必填",
  "topic_id": "String 必填"
}
  • 出参示例

json

复制代码
{
  "success": true
}

2. 取消收藏主题

  • 接口名称:取消收藏主题
  • 请求方式:POST
  • URL:/topic_collect/de_collect
  • 入参

json

复制代码
{
  "accesstoken": "String 必填",
  "topic_id": "String 必填"
}
  • 出参示例

json

复制代码
{
  "success": true
}

3. 获取用户收藏的主题


三、评论相关

1. 新建评论

  • 接口名称:新建评论
  • 请求方式:POST
  • URL:/topic/:topic_id/replies
  • 入参

json

复制代码
{
  "accesstoken": "String 必填",
  "content": "String 必填",
  "reply_id": "String 可选,回复某条评论"
}
  • 出参示例

json

复制代码
{
  "success": true,
  "reply_id": "5433d5e4e737cbe96dcef312"
}

2. 评论点赞 / 取消点赞

  • 接口名称:评论点赞
  • 请求方式:POST
  • URL:/reply/:reply_id/ups
  • 入参

json

复制代码
{
  "accesstoken": "String 必填"
}
  • 出参示例

json

复制代码
{
  "success": true,
  "action": "down/up"
}

四、用户相关

1. 获取用户详情

  • 接口名称:获取用户详情
  • 请求方式:GET
  • URL:/user/:loginname
  • 入参:无(路径参数用户名)
  • 出参:用户信息、积分、创建主题、回复等
  • 请求示例https://cnodejs.org/api/v1/user/alsotang

2. 验证 accessToken

  • 接口名称:验证 accessToken
  • 请求方式:POST
  • URL:/accesstoken
  • 入参

json

复制代码
{
  "accesstoken": "String 必填"
}
  • 出参示例

json

复制代码
{
  "success": true,
  "loginname": "用户名",
  "id": "用户ID",
  "avatar_url": "头像地址"
}
  • 失败:返回 403

五、消息通知相关

1. 获取未读消息数

  • 接口名称:获取未读消息数
  • 请求方式:GET
  • URL:/message/count
  • 入参

json

复制代码
{
  "accesstoken": "String 必填"
}
  • 出参示例

json

复制代码
{
  "data": 3
}

2. 获取所有消息

  • 接口名称:获取已读 / 未读消息
  • 请求方式:GET
  • URL:/messages
  • 入参

json

复制代码
{
  "accesstoken": "String 必填",
  "mdrender": "String true/false"
}
  • 出参示例

json

复制代码
{
  "data": {
    "has_read_messages": [],
    "hasnot_read_messages": [
      {
        "id": "543fb7abae523bbc80412b26",
        "type": "at",
        "has_read": false,
        "author": {
          "loginname": "alsotang",
          "avatar_url": "https://avatars.githubusercontent.com/u/1147375?v=2"
        },
        "topic": {
          "id": "542d6ecb9ecb3db94b2b3d0f",
          "title": "adfadfadfasdf",
          "last_reply_at": "2014-10-18T07:47:22.563Z"
        },
        "reply": {
          "id": "543fb7abae523bbc80412b24",
          "content": "[@alsotang](/user/alsotang) 哈哈",
          "ups": [],
          "create_at": "2014-10-16T12:18:51.566Z"
        }
      }
    ]
  }
}

3. 标记全部消息已读

  • 接口名称:标记全部已读
  • 请求方式:POST
  • URL:/message/mark_all
  • 入参

json

复制代码
{
  "accesstoken": "String 必填"
}
  • 出参示例

json

复制代码
{
  "success": true,
  "marked_msgs": [{"id":"544ce385aeaeb5931556c6f9"}]
}

4. 标记单个消息已读

  • 接口名称:标记单个已读
  • 请求方式:POST
  • URL:/message/mark_one/:msg_id
  • 入参

json

复制代码
{
  "accesstoken": "String 必填"
}
  • 出参示例

json

复制代码
{
  "success": true,
  "marked_msg_id": "58ec7d39da8344a81eee0c14"
}

通用说明

  1. accessToken:登录 CNode → 设置页面获取
  2. mdrender:默认 true,渲染 markdown;false 则返回原始文本
  3. 所有需要登录的接口必须携带 accesstoken 参数
相关推荐
计算机魔术师3 分钟前
实测GPT-6 Astra后,我发现过去十年的专业门槛正在失效
前端
虎头金猫6 分钟前
Pic Smaller 本地部署:压缩图片、转换格式,再搭建自己的 Web 工具
运维·前端·开源·aigc·ai编程·ai写作
hunterandroid6 分钟前
Android ANR 排查实战:从线上告警到主线程卡点定位
android·前端
君顾18 分钟前
智慧场馆解决方案小程序系统实战:从架构设计到上线指南
java·开发语言·智慧场馆
zhougl9968 分钟前
Dockerfile实战教程
java·开发语言·spring boot
新时代牛马14 分钟前
Linux 驱动调试完整篇:从printk/dev_dbg、动态调试到 debugfs/ftrace 排障
java·linux·服务器
图扑软件22 分钟前
下篇・换墨|主题/多语言/移动端,一套组件全覆盖
前端·javascript·ui·性能优化·数据可视化
程序员老赵26 分钟前
Docker 部署 TeX Live:轻松搭建 LaTeX 论文排版编译平台
前端·docker·latex
计算机毕设定制辅导-无忧学长27 分钟前
《基于Spring Boot传承之光非遗陶瓷烧造产品交易平台的设计与实现》
java·vue.js·spring boot·后端·毕业设计
Zane199429 分钟前
内存都要回收,为什么JVM偏要把堆分成新生代和老年代
java·后端