基础路径:CNode社区
一、主题相关接口
1. 获取主题列表
- 接口名称:获取主题首页列表
- 请求方式:GET
- URL:/topics
- 入参
json
{
"page": "Number 页数",
"tab": "String 分类(ask/share/job/good)",
"limit": "Number 每页数量",
"mdrender": "String true/false 是否渲染markdown"
}
- 出参:主题列表数组(含 id、title、author、create_at 等)
- 请求示例 :https://cnodejs.org/api/v1/topics
2. 获取主题详情
- 接口名称:获取主题详情
- 请求方式:GET
- URL:/topic/:id
- 入参
json
{
"mdrender": "String true/false",
"accesstoken": "String 可选,用于判断收藏/点赞状态"
}
- 出参:主题完整信息、回复列表、is_collect、replies.is_uped
- 请求示例 :https://cnodejs.org/api/v1/topic/5433d5e4e737cbe96dcef312
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. 获取用户收藏的主题
- 接口名称:获取用户收藏主题
- 请求方式:GET
- URL:/topic_collect/:loginname
- 入参:无(路径参数用户名)
- 出参:收藏主题列表
- 请求示例 :https://cnodejs.org/api/v1/topic_collect/alsotang
三、评论相关
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"
}
通用说明
- accessToken:登录 CNode → 设置页面获取
- mdrender:默认 true,渲染 markdown;false 则返回原始文本
- 所有需要登录的接口必须携带 accesstoken 参数