02.阳光沙滩API
阳光沙滩API文档
api逐步开方,也会逐步完善,同学们可以通过API学习相关的知识。
password
字段要进行md5转换,不可以提交明文。
用户相关的接口:
- 图灵验证码
- 登录
- 退出登录
- 检查token是否有效
- 获取手机验证码(注册)
- 注册
- 获取手机验证码(找回密码)
- 找回密码(凭借手机验证码进行更新)
- 检查手机验证码是否正确
- 更新密码(凭借旧密码进行更新)
API访问路径
https://api.sunofbeaches.com
图灵验证码
/uc/ut/captcha?code=随机数
获取到图片的时候,在response的header里有l_c_i字段,这个字段内容是图灵码的key,需要在提交的时候,在request的header中携带。
登录
/uc/user/login/{captcha}
- query参数:captcha 前面图片验证码内容
- 请求方式:Post
- body 参数user
user: {
phoneNum: '',
password: ''
}
phoneNum
为手机号码,password
为密码,不可以是明文,需要MD5算法计算摘要。
我把断点坑了[捂脸]
登录成功以后,token会在response的header中返回,字段是sob_token,请求数据时,携带在request的header中,每次response都判断一下header中是否有sob_token,如果有,就说明原来的过期了,替换更新原来的。
通过手机号码获取头像
api.sunofbeach.net/uc/user/avatar/{phoneNum}
- 请求方法:get
- phoneNum 电话号码
在登录的时候,可以通过这个接口,获取到头像。UI上体验会好一些。
退出登录
/uc/user/logout
- 请求方式:Get
Token解析
/uc/user/checkToken
- 要cookie支持,token在cookie里。
- 请求方式:get
获取注册的手机验证码(注册)
/uc/ut/join/send-sms
- 请求方式:POST
- body参数:
sendSmsVo
sendSmsVo: {
phoneNumber: '',
verifyCode: ''
}
verifyCode
为图灵验证码
获取找回密码的手机验证码(找回密码)
/uc/ut/forget/send-sms
- 请求方式:POST
- body参数:
sendSmsVo: {
phoneNumber: '',
verifyCode: ''
}
verifyCode
为图灵验证码
检查手机验证码是否正确
/uc/ut/check-sms-code/{phoneNumber}/{smsCode}
- 请求方式:Get
- query参数:
phoneNumber
为手机号码 - query参数:
smsCode
为短信验证码
注册账号
/uc/user/register/{smsCode}
- 请求方式:POST
- query参数:smsCode,前面请求的短信验证码
- body参数:user
user: {
phoneNum: '',
password: '',
nickname: ''
}
找回密码(通过短信找回)
/uc/user/forget/{smsCode}
- 请求方式:Put
- query参数:
smsCode
为短信验证码 - body参数
userVo: {
phoneNum: '',
password: ''
}
修改密码(通过旧密码修改)
/uc/user/modify-pwd
- 请求方式:Put
- body参数:modifyPwdVo
modifyPwdVo: {
oldPwd: '',
newPwd: '',
captcha: ''
}
captcha
为图灵验证码
猿村(摸鱼)
猿村接口有:
- 获取动态列表
- 获取热门动态列表
- 获取动态评论
- 动态点赞
- 发表评论
- 发表动态子评论(回复评论,也就是评论的评论)
- 上传图片
- 删除图片
- 发表动态
- 获取动态详情(单条动态获取)
- 根据size获取话题(类似于猿村侧栏)
- 获取所有的话题
- 解析Url
- 关注话题
- 取消关注话题
- 获取关注的话题列表
获取动态列表
/ct/moyu/list/{topicId}/{page}
- 请求方式:Get
- 参数:
topicId
话题Id,其中推荐为recommend
,获取关注的为follow
其他的则是话题的id - 参数:page 为页码,从1开始
获取热门动态列表
此接口类似于右侧栏的内容,近几天点赞多的则会上榜。
/ct/moyu/hot/{size}
- 请求方法:GET
- 参数:size 数量
获取动态评论
当点击评论的时候,或者是跳转到动态详情页面的时候,可以通过此接口获取到动态的评论内容。
/ct/moyu/comment/{momentId}/{page}?sort=1/0
- 请求方法:GET
- 参数momentId:动态的ID
- 参数page:页码,第1页开始
- query参数sort,1表示按时间降序,旧的在后面,0表示按时间升序,新的在后面
动态点赞
/ct/moyu/thumb-up/{momentId}
- 请求方式:PUT
- 参数:momentId 动态ID
发表评论(评论动态)
/ct/moyu/comment
- 请求方法:POST
- body参数:momentComment
comment: {
momentId: '',
content: ''
}
momentId
为动态ID,content
为评论内容。
回复评论
/ct/moyu/sub-comment
- 请求方法:POST
- body参数:momentSubComment
subComment: {
content: '',
momentId: '',
targetUserId: '',
commentId: ''
}
content
为评论内容,momentId
为动态Id,targetUserId
是被评论内容的用户Id,commentId
为被评论内容的Id
上传动态图片:
/oss/image/mo_yu
- 请求方式:POST
- 请求参数:image
发表动态
/ct/moyu
- 请求方式:POST
- body参数:moment
moment: {
content: '',
topicId: '',
images: []
}
- content为内容
- linkUrl为链接
- topicId为话题Id
- images为图片列表,图片链接地址,最多4张
获取单条动态详情
/ct/moyu/{momentId}
- 请求方式:GET
- query参数:momentId动态的ID
获取首页话题(类似于摸鱼首页侧栏)
/ct/moyu/topic/index
- 请求方式:GET
获取话题列表
/ct/moyu/topic
- 请求方法:GET
关注话题
/ct/moyu/topic/follow/{id}
- 请求方式:POST
- 参数:id为话题id
取消话题关注
/ct/moyu/topic/follow/{id}
- 请求方式:DELETE
- 参数:id为话题id
获取关注的话题列表
/ct/moyu/topic/follow
- 请求方法:GET
首页
- 获取分类列表
- 获取推荐内容
- 根据分类获取内容
获取分类列表
/ct/category/list
- 请求方法:GET
获取推荐内容
/ct/content/home/recommend/{page}
- 请求方法:GET
- query参数:page 页码,从1开始
根据分类获取内容
/ct/content/home/recommend/{categoryId}/{page}
- 请求方法:GET
- queyr参数:
categoryId
分类的ID - queyr参数:
page
页码,第1页开始
获取轮播图
/ast/home/loop/list
- 请求方法:GET
获取富豪排行榜
/ast/rank/sob/{count}
- 请求方法:Get
- count,获取数量
问答模块
获取问答列表
/ct/wenda/list?page=page&state=state&category=category
- 请求方法:GET
- page参数,页码,从1开始
- state,状态:lastest最新的,noanswer等待解决的,hot热门的
- category:-2
获取回答排行榜
/ast/rank/answer-count/{size}
- 请求方法:GET
- 参数size:数量5~10
查询当前用户是否有点赞该问题
/ct/wenda/thumb-up/check/{wendaId}
- 请求方法:GET
- wendaId参数:问题的id
- 需要cookie支持
检查是否有点赞某个回答
/ct/wenda/comment/thumb-up/check/{commentId}
- 请求方法:GET
- commentId 参数 评论Id
- 需要cookie支持
获取问答详情
/ct/wenda/{wendaId}
- 请求方法:Get
- wendaId 参数:问题的Id
问答图片上传
/ct/image/answer
- 请求方法:POST
- 请求参数:image
发表答案
/ct/wenda/comment
- 请求方法:POST
- body参数:answer
answer: {
wendaId: '',
content: ''
},
评论答案
/ct/wenda/sub-comment
- 请求方法:POST
- body参数: wendaSubComment
subComment: {
content: '',
parentId: '',
beNickname: '',
beUid: '',
wendaId: '',
}
- parentId 被评论的答案ID
- beNickname 被评论人的昵称
- beUid 被评论人的用户ID
- wendaId 问题的ID
获取答案列表
/ct/wenda/comment/list/{wendaId}/{page};
- 请求方法:GET
- wendaId参数:问题的Id
- page参数:页码,从第1页开始
获取相关的问题
/ct/wenda/relative/{wendaId}/{size}
- 请求方法:GET
- wendaId 参数,当前问题的Id
- size 参数:推荐数量
问题点赞
/ct/wenda/thumb-up/{wendaId}
- 请求方法:PUT
- 请求参数:wendaId 问题的ID
问题回答点赞
/ct/wenda/comment/thumb-up/{wendaCommentId}
- 请求方法:PUT
- wendaCommentId:回答的ID
设置为最佳答案
此接口只在当前用户与当前问答的用户一样时才可以显示,才可以调用,否则返回无权限的结果
/ct/wenda/comment/best/{wendaId}/{wendaCommentId}
- 请求方法:PUT
- wendaId:问题的Id
- wendaCommentId:答案的Id
答案打赏
'/ct/wenda/comment/prise/{commentId}/{count}?thumbUp=thumb
- 请求方法:PUT
- commentId 答案id
- count 打赏积分数量
- thumb:true/false true表示同时点赞
文章
文章详情
/ct/article/detail/{articleId}
- 请求方法:GET
- 参数:articleId,文章的ID
获取文章评论
/ct/article/comment/{articleId}/{page}
- 请求方法:GET
- articleId:文章Id
- page:页面,从第1页开始
获取相关文章列表
/ct/article/recommend/{articleId}/{size}
- 请求方法:GET
- articleId:文章Id,用于计算与此文章相关的内容
- size:需要多少个相关文章
打赏文章
/ast/prise/article
- 请求方法:post
- body参数
priseArticleData: {
articleId: '',
sob: 16,
}
articleId为文章id,sob为打赏积分
获取打赏列表
/ast/prise/article/{articleId}
- 请求方法:get请求
此接口就是文章底部的打赏列表
获取作者的打赏二维码
/ast/prise-qr-code/{userId}
- 请求方法:GET
在拿到文章以后,就知道文章是谁写的了,也就是有userId了,有了userId,就可以查询这个用户的打赏二维码了。
获取文章评论列表
/ct/article/comment/{articleId}/{page}
- 请求方法:GET
- articleId:文章Id
- page:页码,从1开始
评论文章
/ct/article/comment
- 请求方法:POST
body参数:comment
comment: {
parentId: '0',
articleId: '',
commentContent: '',
}
- parentId,默认为0即可
- articlId,文章的ID
- commentConetnt,评论内容
回复文章评论
/ct/article/sub-comment
- 请求方法:POST
- body参数:
subComment: {
articleId: '',
parentId: '',
beUid: '',
beNickname: '',
content: ''
}
- articleId,文章Id
- parentId,被回复评论的Id
- beUid,被评论用户的Id
- beNickName,被评论用户的昵称
- content,评论内容
用户相关的
- 获取用户信息
获取用户信息
/uc/user-info/{userId}
- 请求方法:GET
- userId,用户的ID
返回结果:
{
"success": true,
"code": 10000,
"message": "获取用户信息成功.",
"data": {
"userId": "1153952789488054272",
"nickname": "拉大锯",
"avatar": "https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png",
"position": "首席打杂工程师",
"company": "阳光沙滩",
"sign": "三界之内没有我解不了的bug",
"area": "广东省/深圳市/福田区",
"vip": false
}
}
获取关注列表
/uc/follow/list/{userId}/{page}
- 请求方法:Get
- userId,用户Id
- page,页码,从开始
获取粉丝列表
/uc/fans/list/{userId}/{page}
- 请求方法:Get
- userId,用户Id
- page,页码,从开始
查询自己与目标用户的关注状态
/uc/fans/state/{userId}
- 请求方法:Get
- 返回结果:
- 0表示没有关注对方,可以显示为:关注
- 1表示对方关注自己,可以显示为:回粉
- 2表示已经关注对方,可以显示为:已关注
- 3表示相互关注,可以显示为:相互关注
添加关注
/uc/fans/{userId}
- 请求方法:Post
- userId,要关注的用户Id
取消关注
/uc/fans/{userId}
- 请求方法:Delete
- userId,要取消关注的用户Id
VIP会员
判断是否有领取津贴
/ast/vip-allowance
- 请求方法:get
- 此方法用于控制UI显示,如果是已经领取,那么UI显示禁止领取津贴即可。
VIP领取津贴(每月)
/ast/vip-allowance
- 请求方法:PUT
用户中心
获取未读信息
/ct/msg/count
- 请求方法:Get
获取个人成就
/ast/achievement
- 请求方法:GET
获取文章评论列表
/ct/ucenter/message/article/{page}
- 请求方法:Get
- page,页码,从1开始
获取动态评论
/ct/ucenter/message/moment/{page}
- 请求方法:GET
- page,页码,从1开始
回答列表
/ct/ucenter/message/wenda/{page}
获取问题的回答列表
- 请求方法:GET
- page,页码,从1开始
获取点赞列表
/ct/ucenter/message/thumb/{page}
- 请求方法:GET
获取系统消息
/ct/ucenter/message/system/{page}
- 请求方法:GET
被at的消息
/ct/ucenter/message/at/{page}
更新文章消息状态
/ct/ucenter/message/state/{msgId}/1
1表示已读,2表示已回复(可以借助前面的文章子评论回复功能)
- 请求方法:put
更新摸鱼动态消息的状态
/ct/ucenter/message/moment/state/{msgId}/1
- 请求方法:PUT
更新At消息的状态
/ct/ucenter/message/at/state/{msgId}/1
- 请求方法:PUT
更新问题回答消息的状态
/ct/ucenter/message/wenda/state/{id}/1
- 请求方法:PUT
一键已读所有消息
/ct/msg/read
- 请求方法:暂时是GET,如果Get不行就用PUT,我一开始写PUT的,方便测试改成了GET,后面我再改回来,哈哈。
收藏
关于收藏有两部分
- 一部分是前端的收藏动作
- 一部分是用户中心的收藏管理和查看动作
获取收藏夹列表
/ct/ucenter/collection/list/{page}
- 请求方法:GET
- 参数page 页码,第1页开始
收藏夹封面图片上传
/ct/ucenter/image/collection_cover
- 请求方式:POST
- 参数:image
收藏夹创建
/ct/ucenter/collection
- 请求方法:POST
- body参数
newCollection: {
name: '',
description: '',
cover: '',
permission: '0'
}
- name 收藏夹名称
- description收藏夹描述
- cover 封面
- permission '0'表示公开'1'表示私有
更新收藏夹信息
/ct/ucenter/collection
- 请求方法:PUT
- body参数
newCollection: {
_id: '',
name: '',
description: '',
cover: '',
permission: '0'
},
- _id 集合id,ID在获取到的时候填充
- name 收藏夹名称
- description 描述
- cover 封面
- permission 权限 '0'表示公开 '1'表示私有
删除收藏夹
/ct/ucenter/collection/{collectionId}
- 请求方法:DELETE
- 参数:collectionId 收藏夹的ID
获取到收藏夹里的内容列表
/ct/ucenter/favorite/list/{collectionId}/{page}/{order}
- 请求方法:GET
- 参数
- collectionId: 收藏夹的ID
- page:页码,从1开始
- order:排序方式 0 表示降序,1表示升序,按添加时间
删除收藏内容
/ct/ucenter/favorite/{favoriteId}
- 请求方法:DELETE
- 参数:
- favoriteId:收藏内容的ID
获取收藏夹列表
添加之前,先获取到收藏夹列表
/ct/collection/list/{page}
- 请求方式:GET
- 参数:page 页码,从1开始
添加收藏
/ct/favorite
- 请求方式:POST
- 请求体:
favorite: {
collectionId: '',
title: '',
url: '',
type: '',
cover: ''
},
- collectionId:收藏夹ID
- title:收藏内容标题
- url:收藏的链接
- type:收藏类型:'0'即可
- cover:封面,可以不填写
查询当前URL是否有收藏
/ct/favorite/checkCollected?url=url地址
- 请求方法:GET
- 返回值如果有收藏则有ID
删除收藏
删除收藏之前先检查是否有收藏,检查是否有收藏,如果已经收藏了,则会返回一个收藏内容的ID,通过此ID可以删除内容
/ct/favorite/{favoriteId}
- 请求防范DELETE
- 参数:favoriteId收藏内容的ID
学院课程相关的文档
=华丽的分割线======================
关于内容的字段解析,我有空再补上, 同学们先进行模拟请求,如果有字段不知道什么意思的,可以发帖子哈。
有空我就更新文档...同学们一步一步开发吧。遇到问题可以发帖子。