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 参数
相关推荐
风骏时光牛马13 分钟前
大模型底层架构与AI源码深度剖析
前端
SL_staff1 小时前
告别报表重复开发:JVS-BI 模板市场的参数化继承实践
java·数据分析·数据可视化
掘金挖土1 小时前
前端手摸手跑路之 AI 应用开发(九)
前端·后端
SL_staff2 小时前
从邮箱传文档到协同流重构:企业文档协作的系统性破局实践
java·开源·github
中文呀4 小时前
三维 GIS 离线缓存实战:逆向 CesiumOfflineCache,并亲手为它补上"自动更新"能力
前端
smallyoung4 小时前
告别N+1:Spring Boot 一键数据翻译框架体系
java·后端·架构
前进前进前进4 小时前
TRAE 全链路实战:做了一个警示牌一键生成器:纯 Canvas、单文件、零依赖
前端
小万7425 小时前
God‘s Eye View 深度解析:15 路公开信号 + CesiumJS 的浏览器级 OSINT 控制台,60 帧渲染的“真实间谍卫星模拟器”
前端
IT星宿5 小时前
浏览器标签页全是一个图标:我用名字哈希生成 favicon,让每个项目都有身份标识
前端