开发日志开发日志ReBLOG开发日志02
REDEYESapi接口的编写
基于上次的数据库设计完善,今天我们来做正式开发项目之前的最后一步,编写相应的接口,有了相应的数据库设计,编写接口也变得相当简单,不过可能比较繁琐
大体是接口信息如下所示
1 2 3 4 5 6
| export [接口名]={ [要请求的相应数据类型] } res={ [返回的数据] }
|
这里我们暂时没有考虑相应的请求方法,等到后期设置路由的时候再去考虑这方面的需求是什么
功能的展示
有了功能我们才能更好的去做我们的接口信息
大题的功能如下
- 用户登陆
- 数据总览
- 访问量
- 数据监测
- 显示评论
- 文章/文章搜索
- 文章删除
- 文章发布/文章撤回
- 文章状态
- 显示分组
- 新建分组
- 删除分组
- 查看标签
- 新建标签
- 显示文件
- 文件上传
- 文件删除
- 文件移动
- 图库/图库搜索
- 图库删除
- 日记/日记搜索
- 日记删除
- 文章/图库新建
- 获取文章/图库用于修改
- 文章/图库修改
- 新建日记
- 获取天气
功能大概先写这么多,后续开发过程中在修改或进行添加相应的功能
根据上述功能来写API无非就要考虑两种情况
第一种
可有可无
有的文章或者图片没有进行相应的分类,我们则加?来表示可有可无
第二种
取出来的数据不知一个,可以形成相应的数组,完美可以在数据类型的后面加上[]
比如
有的时候一篇文章取出来的标签可能不止一个所有可以形成一个数组来表示,就可以用数组类型。
编写接口
根据以上的方法,变可以把接口给写出来大体如下
用户登陆
地址:/login
1 2 3 4
| export type login={ name:string; pwd:string; }
|
1 2 3 4 5 6 7 8 9 10
| res={ code:number data?:{ id:number; name:string; avater_url:string; token:string; } }
|
数据总览
地址:/overview
1 2 3
| export overview ={ token:string; }
|
1 2 3 4 5 6 7 8 9 10
| res={ code:number data?:{ file:string; article:number; gallery:number; diary:number; } }
|
访问量
地址:/visits
1 2 3 4 5
| export type visits={ token:string; length:number; }
|
1 2 3 4 5 6
| res={ code:number data?:{ count:number; } }
|
数据监测
地址:/survey
1 2 3
| export type survey={ token:string; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| res={ code:number data?:{ device:{ key:'mobile'|'pc'; value:number; } }[]; website:{ key:'file'|'article'|'gallery'|'diary' }[]; }
|
评论
1 2 3 4 5 6
| export type comment={ token:string; pageSize:number; nowPage:number; count?:boolean; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| res={ code:number data?:{ count?:number; list:{ id:number; article?:{ title:string; }; user:{ id:string|number; name:string; avater_url:string };
comment:string; moment:string; complaint:number; }[]; } }
|
文章/文章搜索
地址:/article
1 2 3 4 5 6 7 8 9
| export type login={ token:string; pageSize:number; nowPage:number; state?:number; subsetId:number; serchTerm?string|number; count?;boolean }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| res={ code:number data?:{ count?:number; list:{ id:number; title:string; subsetId:number; moment:string; label?:string[]; introduce?:string; cover?:string; views:number; state:number; comment:number; praise:number; }[]; } }
|
文章发布/文章撤回
地址:/changeArticleState
1 2 3 4
| export type changeArticleState={ token:string; articleId:number }
|
文章删除
地址:/deleteArticle
1 2 3 4
| export type changeArticleState={ token:string; articleId:number }
|
文章状态
地址:/articleState
1 2 3 4
| export type changeArticleState={ token:string; }
|
1 2 3 4 5 6 7 8 9 10 11 12
| res={ code:number data?:{ id:number; name:'已发布'|'未发布'; value:number; }[];
}
|
分组
地址:/subset
1 2 3 4
| export type changeArticleState={ token:string; classify:number; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| res={ code:number data?:{ count?:number; list:{ id:number; name:string; value:number; moment:string; }[] }
}
|
新建分组
地址:/addSubset
1 2 3 4 5 6
| export type addSubset={ token:string; classify:number; subsetName:string|string }
|
修改分组名称
地址:/updateSubset
1 2 3 4 5 6
| export type updateSubset={ token:string; classify:number; subsetName:string|number }
|
删除分组
地址:/deleteSubset
1 2 3 4 5
| export type deleteSubset={ token:string; substId:number }
|
查看标签
地址:/label
1 2 3 4
| export type deleteSubset={ token:string; }
|
1 2 3 4 5 6 7 8 9 10 11
| res={ code:number data?:{ id:number; name:string; moment:string }[];
}
|
新建标签
地址:/addLabel
1 2 3 4 5
| export type addLabel={ token:string; lableName:string; }
|
1 2 3 4 5 6 7 8 9 10 11
| res={ code:number data?:{ id:number; name:string; moment:string }[];
}
|
删除标签
地址:/deleteLabel
1 2 3 4 5
| export type deleteLabel={ token:string; lableId:string; }
|
1 2 3 4 5 6 7
| res={ code:number
}
|
文件
地址:/file
1 2 3 4 5 6 7 8
| export type file={ token:string; pageSize:number; nowPage:number; subsetId?:number count:bloolean }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| res={ code:number data?:{ count?:number; list:{ id:number; url:string fileName:string format:string subsetId?:string } } }
|
文件上传
地址:/uploadFile
1 2 3 4 5
| export type uploadFile={ token:string; formData = new FormData(); subsetId?:string }
|
1 2 3 4 5 6 7 8 9 10
| res={ code:number data?:{ id:number; url:string fileName:string format:string subsetId?:string } }
|
文件删除
地址:/deleteFile
1 2 3 4
| export type deleteFile={ token:string; file:number | number[] }
|
文件移动
地址:/removeFile
1 2 3 4 5
| export type removeFile={ token:string; file:number | number[] subsetId:number }
|
图库/图库搜索
地址:/gallery
1 2 3 4 5 6 7 8
| export type removeFile={ token:string; pageSize:number; nowPage:number; subsetId?:number count:bloolean serchTerm?string|number; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| res={ code:number data?:{ count?:number; list:{ id:number; title:string; subsetId?:number; moment:string;
introduce?:string; cover?:string; views:number;
comment:number; praise:number; }[]; } }
|
图库删除
地址:/deleteGallery
1 2 3 4
| export type deleteGallery={ token:string; galleryId:number }
|
日记/日记搜索
地址:/diary
1 2 3 4 5 6 7
| export type diary={ token:string; pageSize:number; nowPage:number; count:bloolean serchTerm?string|number; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| res={ code:number data?:{ count?:number; list:{ id:number; title:string; moment:string; weatherId:number; comment:number; content:string; picture?:string[]; }[]; } }
|
日记删除
地址:/deleteDiary
1 2 3 4
| export type deleteDiary={ token:string; diaryId:number }
|
文章/图库新建
地址:/createArticle
1 2 3 4 5 6 7 8 9 10 11 12 13
| export type deleteDiary={ token:string; title:string; subsetId?:number; classify:number; label?:string[]; introduce?:string; content?:string; cover?:string; state?:number; moment:string;
}
|
获取文章/图库用于修改
地址:/gainArticle
1 2 3 4
| export type gainArticle={ token:string; articleId:number }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| res={ code:number data?:{ id:number; title:string; subsetId?:number; label?:string[]; introduce?:string; content?:string; cover?:string; state?:number;
}
}
|
文章/图库修改
地址:/updateArticle
1 2 3 4 5 6 7 8 9 10
| export type updateArticle={ token:string; title:string; subsetId?:number; label?:string[]; introduce?:string; content?:string; cover?:string; state?:number; }
|
新建日记
地址:/createDirary
1 2 3 4 5 6 7 8
| export type createDirary={ token:string; title:string; content:string; picture?:string[]; weatherId:string[]
}
|
天气
地址:/weather
1 2 3 4 5
| export type createDirary={ token:string;
}
|
res={
code:number //200正常 300未通过验证的返回500 错误 400拒绝访
data?:{
id:number;
name:string;
icon:string;
}[];
}