跳至主要內容

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

学院课程相关的文档

阳光沙滩学院APIopen in new window

=华丽的分割线======================

关于内容的字段解析,我有空再补上, 同学们先进行模拟请求,如果有字段不知道什么意思的,可以发帖子哈。

有空我就更新文档...同学们一步一步开发吧。遇到问题可以发帖子。