官网接口(v2.0)

前台部分


QQ授权登陆部分

QQ授权登陆流程后台人员看,前台人员感兴趣看一下,我写的比较渣

  • 用户点击登陆按钮发起的请求
Request Address: 
(WebRoot)/user/signIn

Request Method:
GET

Request Param:
(NULL)
  • 之后回重定向到?地址(这里UI还没给),前端会收到这样一个响应
ResponseParam:
{
    "state":(string)  //授权成功为"success",失败初定为"fail",或考虑情况返回各种状态
}

(授权成功以后,后台会设置user_id和openID加密以后的cookie)

  • 之后前端向后台发起关于用户信息的请求(仅限用户本人)
    (这个接口用在需要后台刷新用户信息时,其中授权成功以后必须使用,但是因为这个接口中,后台会调用腾讯的API,而这个API可能每天有调用次数上限,所以尽可能不要频繁使用)
Request Address: 
(WebRoot)/user/getUserInfoRefresh

Request Method:
GET

Request Param:
(NULL)

Response Param:
{
    "state":(string)        //成功为"success",失败为"failed",并且以下的参数全部没有
    "nickname":(string)    //用户在QQ空间的昵称,如"Peter"
    "avantarUrl":(string)    //大小为40×40像素的QQ头像URL,如"http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/30"
}


用户信息部分

用户信息请求接口(仅对访问用户本人可用)

(这个接口只会取出后台数据库中对用户信息的缓存,可以经常调用。前端如果需要的话,也可以做本地的数据缓存)

Request Address: 
(WebRoot)/user/getUserInfo

Request Method:
GET

Request Param:
(NULL)

Response Param:
{
    "state":(string)        //成功为"success",失败为"failed",并且以下的参数全部没有
    "nickname":(string)    //用户在QQ空间的昵称,如"Peter"
    "avantarUrl":(string)    //大小为40×40像素的QQ头像URL,如"http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/30"
}
用户头像请求接口(对于任何用户,评论处的头像也从这里获取)
//尚待商议,是不是换成直接图片下载比较好
Request Address: 
(WebRoot)/user/avantar

Request Method:
GET

Request Param: 
{
    "userId":(int)   //用户的Id
}

Response Param: 
{
    "avantarUrl":(string)    //大小为40×40像素的QQ头像URL如"http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/30"
}

文章部分(统一)

(一样的部分我打算使用同一个接口,技术分享到时另外再添加补充接口,比如外链网址)

文章预览列表页
Request Address: 
(WebRoot)/article/preview

Request Method:
GET

Request Param: 
{
    "type":(string)//"report"活动报道;"repairSkill"维修技巧;"collection"作品集锦;"share"技术分享(?)
    "page":(int)   //页码,默认为1(首页)
    "num":(int)//单页条数
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败,并且以下的参数不会出现
    "totalPage" : (int)  //总的页数
    "report": //这个数组里的对象数量为num个(分页)
    [{ 
        "id" : (string),        //文章的id
        "title" : (string),           //标题
        "abstract" : (string),        //简介
        "updateTime" : (int),         //更新时间戳
    }]
}
文章预览列表页中的标题图请求接口(已取消,换由前端直接调用public名下的文件)
文件名约定:
public/img/filename
filename : type-id.ext
    type 为 report / repairSkill / collection / share
    id 为 文章索引在数据库中的 主键
    ext 为文件拓展名,当前有jpg,png,gif三种形式
    例如:report-2.jpg
//取消了,这个没用
Request Address: 
(WebRoot)/article/surfacePlot

Request Method:
GET

Request Param: 
{
    "type":(string)//"report"活动报道;"repairSkill"维修技巧;"collection"作品集锦;"share"技术分享(?)
    "id":(int)   //文章的Id
}

Response Param: 
(图片文件)

富文本html代码请求接口
Request Address: 
(WebRoot)/article/getHtml

Request Method:
GET

Request Param: 
{
    "type":(string)//"report"活动报道;"repairSkill"维修技巧;"share"技术分享
    "id":(int)   //文章的Id,会在预览页给出
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;
    "content":(string)   //转义后的html字符串,如"
" }
评论翻页
Request Address:
(WebRoot)/article/comment

Request Method:
GET

Request Param: 
{
    "type":(string)//"report"活动报道;"repairSkill"维修技巧;"share"技术分享
    "id":(int)   //文章的Id,会在预览页给出
    "page" : (string)  //评论的页码
    "num":(int)//单页条数
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败,并且以下的参数不会出现
    "totalPage" : (int)  //总的页数
    "comment":   //这个数组里的对象数量为num个(分页)
    [{
        "id":(int)  //评论id
        "user" : (string),          //评论人nickname
        "createTime" : (int),       //提交时间戳
        "content" : (string),       //评论内容
        "thumbUpNum":(int) ,       //点赞数量
        "isThumbUp":(int) ,        //用户本人是否已点赞,是为1,否为0
    }]//评论人头像的获取见用户信息部分
}
提交评论
Request Address:
(WebRoot)/article/comment/submit

Request Method:
POST

Request:
{
    "type":(string)//"report"活动报道;"repairSkill"维修技巧;"share"技术分享
    "id":(int)   //文章的Id
    "content" : (string) //评论的内容
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;"notSigned"未登录,前台帮忙引导至登录页面
}
给某评论点赞/取消点赞
切换点赞的状态用的

Request Address:
(WebRoot)/article/comment/thumbUp

Request Method:
POST
Request:
{
    "type":(string)//"report"活动报道;"repairSkill"维修技巧;"share"技术分享
    "id":(int)   //评论的Id
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;"
    "isThumbUp":(int) ,        //(执行后数据库内的情况)用户本人是否已点赞,是为1,否为0
}

近期活动预览页

Request Address: 
(WebRoot)/activity/preview

Request Method:
GET

Request Param: 
{
    "page":(int)   //页码,默认为1,即第一条(应用分页组件的原因)(首页)
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败,并且以下的参数不会出现
    "totalPage" : (int)  //总的页数
    "id":(int)//活动id号
    "title" : (string),   //活动标题,无限杯电子设计大赛
    "content" : (string), //活动简介
    "schedule":
    [{ 
        "stage" : (string),  //阶段
        "beginTime" : (int), //时间戳,开始时间
        "endTime" : (int),   //时间戳,结束时间
        "place" : (string),  //地点
    }],
    "signUpLink" : (string)  //报名表单外链,这个在为false的情况下,说明报名未开始或者已经截止
 }
对应每个活动的海报图片请求接口(已取消,换由前端直接调用public名下的文件)
文件名约定:
public/img/poster/filename
filename : id.ext
    id 为 活动在数据库中的主键
    ext 为文件拓展名,当前有jpg,png,gif三种形式
    例如:3.jpg
//接口已取消
//尚且值得商议,看要不要换成post,要不要加上token

Request Address: 
(WebRoot)/activity/poster

Request Method:
GET

Request Param: 
{
    "activityId":(int)   //报名活动的Id
}

Response Param: 
(图片文件)


维修预约部分

(忆麟说可能这个要搞外链,我姑且还是写一下)

一、获得预约信息

Request Address: 
(WebRoot)/appointment/getInfo

Request Method:
GET

Request Param:
(NULL)

Response Param:
{
    
    "state":(string)    //"success"为成功;"fail"为失败;"notSigned"未登录,前台帮忙引导至登录页面
    "isOrder" : (int),    //是否该用户有预约维修
    "underExam" : (int),  //在有预约的时候显示预约审核进度,0为未审核,1为通过,2为不通过
                          //在没有预约的时候一定为0 
}

二、进行预约

//这个接口只有在这个用户没有预约过的时候开放
//如果该用户当前有预约,那么这个接口一定会返回失败信息
Request Address: 
(WebRoot)/appointment/sign

Request Method:
POST

Request Param:
{
    "name" : (string),        //预约人的名字
    "phoneNumber" : (string), //手机号,默认11位,格式非法的电话号码无法通过预约
    "campus" : (int),         //校区信息,南校为0,北校为1
    "dormitory" : (string),   //宿舍的信息,最长30
    "itemName" : (string),    //修理物品的名字,最长80
    "description" : (string), //修理物品损坏情况的具体描述
}

Response Param:
{
    "state":(string)    //"success"为成功;"fail"为失败;"notSigned"未登录,前台帮忙引导至登录页面
}

意见反馈部分

查看反馈

说听说前端点一下刷30条就好,至于刷了几次前端记录吧

Request Address: 
(WebRoot)/feedback/get

Request Method:
GET

Request Param:
{
    "index":(int)//第几个30条反馈
}

Response Param:
{
    "state":(string)    //"success"为成功;"fail"为失败;"notSigned"未登录,前台帮忙引导至登录页面
    "feedback": //这个数组里的对象数量为个30(分页),即默认每次获取30条数据
    [{
        "feedbackCreateTime" : (int), //反馈的创建时间戳
        "feedbackContent" : (string), //反馈的内容 
        "responseAdmin":(string)//回复的后台管理员名
        "respondCreateTime" : (int),  //回应的创建时间戳
        "respondContent" : (string),  //回应的内容
    }]
}
提交反馈
Request Address:
(WebRoot)/feedback/submit

Request Method:
POST

Request Param:
{
    "content" : (string), //反馈的内容
}

Response Param:
{
    "state":(string)    //"success"为成功;"fail"为失败;"notSigned"未登录,前台帮忙引导至登录页面
}

后台部分(管理员,记得注册Admin中间件)

近期活动部分

海报上传接口

上传图片后响应中会得到一个图片标识,这个图片标识在后面的近期活动信息上传接口中要用到
会采用Intervention作为图片压缩的包,考虑宣传的需要,图片大小限制到比较大的5MB

还没实现

Request Address: 
(WebRoot)/activity/uploadPoster

Request Method:
POST

Request Param: 
{
    "picture":(file)图片文件
}
限定格式:jpeg,png,gif
限定大小:暂定5MB
长宽:??我要问一下前端

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;"invalid"不是管理员
    "poster":(string)    //图片标识
}
近期活动详情信息提交接口

要求在上传海报图片之后执行。图片上传之后得到的图片标识响应"surfacePlot"需要在这里拿去请求。

Request Address: 
(WebRoot)/activity/release

Request Method:
POST

Request Param: 
{
    "title" : (string),   //活动标题,e.g"无限杯电子设计大赛"
    "content" : (string), //活动简介
    "schedule"://其中,数组内的对象的个数为活动阶段的数目
    [{ 
        "stage" : (string),  //阶段
        "beginTime" : (int), //时间戳,开始时间
        "endTime" : (int),   //时间戳,结束时间
        "place" : (string),  //地点
    }],
    "signUpLink" : (string)  //报名表单外链,这个在为false的情况下,说明没有
    "poster":(string)    //图片标识
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;"invalid"不是管理员
}
近期活动详情信息修改接口
Request Address: 
(WebRoot)/article/modify

Request Method:
POST

Request Param: 
{
    "id":(int),   //待修改活动的id
    "title" : (string),   //活动标题,e.g"无限杯电子设计大赛"
    "content" : (string), //活动简介
    "schedule"://其中,数组内的对象的个数为活动阶段的数目
    [{ 
        "stage" : (string),  //阶段
        "beginTime" : (int), //时间戳,开始时间
        "endTime" : (int),   //时间戳,结束时间
        "place" : (string),  //地点
    }],
    "signUpLink" : (string)  //报名表单外链,这个在为false的情况下,说明没有
    "poster":(string)    //图片标识,可以没有该参数,没有则保留原样
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;"invalid"不是管理员
}

文章部分

预览页中标题图片上传接口

上传图片后响应中会得到一个图片标识,这个图片标识在后面的富文本html上传接口中要用到
会采用Intervention作为图片压缩的包,所以大小限制会大一点

Request Address: 
(WebRoot)/article/uploadSurfacePlot

Request Method:
POST

Request Param: 
{
    "picture":(file)图片文件
}
限定格式:jpeg,png,gif
限定大小:暂定2MB,我还在考虑,需要测试
长宽:我们会将上传后的标题图强行压缩至195*128,上传的图片就保持在这个长宽比附近就好。

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;"invalid"不是管理员
    "surfacePlot":(string)    //图片标识
}
富文本html上传接口

要求在上传封面图片之后执行。图片上传之后得到的图片标识响应"surfacePlot"需要在这里拿去请求。

Request Address: 
(WebRoot)/article/uploadHtml

Request Method:
POST

Request Param: 
{
    "type":(string)//"report"活动报道;"repairSkill"维修技巧;"share"技术分享
    "content":(string)//(html文件原始字符串)
    "title":(string,60)//标题,限60字节
    "abstract":(string,150)//简介,限150字节,type="share"时则不需要
    "surfacePlot":(string)    //图片标识
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;"invalid"不是管理员
}
富文本html修改接口
Request Address: 
(WebRoot)/article/updateHtml

Request Method:
POST

Request Param: 
{
    "type":(string)    //    "report"活动报道;"repairSkill"维修技巧;"share"技术分享    
    "id":(int)//待修改文章的id
    "content":(string)//(html文件原始字符串)
    "title":(string,60)//标题,限60字节
    "abstract":(string,150)//简介,限150字节,type="share"时则不需要
    "surfacePlot":(string)    //图片标识,可以没有该参数,没有则保留原样
}
Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;"invalid"不是管理员
}

维修预约部分

(业务不熟,我的话先放着)


意见反馈部分

反馈列表
Request Address: 
(WebRoot)/feedback/getList

Request Method:
GET

Request Param: 
{
    "page":(int)   //页码,默认为1(首页)
    "num":(int)//单页条数
    "userId":(string)//反馈的用户的id,不带这个参数则默认为所有用户
}

Response Param: 
{
    "state":(string)    //"success"为成功;"fail"为失败;"invalid"不是管理员
    "totalPage" : (int) //评论的总页数
    "feedback"://这个数组里的对象数量为num个(分页)
    [{
        "feedbackUser":(string),//反馈的用户的nickname
        "feedbackUserId":(int),//反馈的用户的id
        "feedbackCreateTime" : (int), //反馈的创建时间戳
        "feedbackContent" : (string), //反馈的内容 
        "responseAdmin":(string)//回复的后台管理员名
        "respondCreateTime" : (int),  //回应的创建时间戳
        "respondContent" : (string),  //回应的内容
    }]//头像从用户信息里找
}

你可能感兴趣的:(官网接口(v2.0))