# koa **Repository Path**: a_zhen_a/koa ## Basic Information - **Project Name**: koa - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-06-01 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### koa2接口文档 `http://39.107.233.206:5522/` [部分展示](#部分截图) [中后台demo](http://39.107.233.206:8848/#/login) > 账号:1234 > > 密码:1234(不要删除账户否则将无法登录) ### 目录 [1.查询分类接口](#1查询分类接口) [2.按照ID查询分类接口](#2按照ID查询分类接口) [3.添加分类接口](#3添加分类接口) [4.更新分类接口](#4更新分类接口) [5.删除分类接口](#5删除分类接口) [6.上传图片](#6上传图片接口) [7.查询物品接口](#7查询物品接口) [8.按照ID查询物品接口](#8按照ID查询物品接口) [9.添加物品接口](#9添加物品接口) [10.更新物品接口](#10更新物品接口) [11.删除物品接口](#11删除物品接口) [12.查询英雄接口](#12查询英雄接口) [13.按照ID查询英雄接口](#13按照ID查询英雄接口) [14.添加英雄接口](#14添加英雄接口) [15.更新英雄接口](#15更新英雄接口) [16.删除英雄接口](#16删除英雄接口) [17.查询文章接口](#17查询文章接口) [18.按照ID查询文章接口](#18按照ID查询文章接口) [19.添加文章接口](#19添加文章接口) [20.更新文章接口](#20更新文章接口) [21.删除文章接口](#21删除文章接口) [22.查询用户接口](#22查询用户接口) [23.按照ID查询用户接口](#23按照ID查询用户接口) [24.添加用户接口](#24添加用户接口) [25.更新用户接口](#25更新用户接口) [26.删除用户接口](#26删除用户接口) [27.用户登录接口](#27用户登录) > > 注释: > > > > 以下还有英雄,物品,文章(努力中),等接口; > > > > + 物品:goods > > + 英雄:heros > > + 文章:articles > > > > 接口示例: > > > > ```javascript > > /admin/rest/category/inquire //此处是分类接口 > > /admin/rest/heros/inquire //此处是英雄接口;以此类推,只需要将关键字改为对应的单词即可 > > ``` > > > > ### 接口列表 ### 一.分类部分 #### 1.查询分类接口 + 请求url: ```javascript /admin/rest/category/inquire ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/category/inquire ``` + 参数类型: query | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :--: | :--: | | | N | | | + 返回示例 ```javascript { "status": 1, "message": "成功", "data": [ { "_id": "5ed5bbb60f7ad48378b69a23", "name": "文章", "time": "2020-06-02T10:38:46.508Z", "__v": 0 }, { "_id": "5ed5bc4a0f7ad48378b69a24", "name": "video", "time": "2020-06-02T10:41:14.716Z", "__v": 0 }, { "_id": "5ed5bca7ef2a8061682f7b81", "name": "英雄", "time": "2020-06-02T10:42:47.937Z", "__v": 0 }, { "_id": "5edde5449f08a1343cb40749", "name": "战士", "parent": { "_id": "5ed5bca7ef2a8061682f7b81", "name": "英雄", "time": "2020-06-02T10:42:47.937Z", "__v": 0 }, "time": "2020-06-08T15:14:12.788Z", "__v": 0 }, { "_id": "5ede0e401277e423ae547172", "name": "法师", "parent": { "_id": "5ed5bca7ef2a8061682f7b81", "name": "英雄", "time": "2020-06-02T10:42:47.937Z", "__v": 0 }, "time": "2020-06-08T18:09:04.441Z", "__v": 0 }, { "_id": "5ede0e461277e423ae547173", "name": "坦克", "parent": { "_id": "5ed5bca7ef2a8061682f7b81", "name": "英雄", "time": "2020-06-02T10:42:47.937Z", "__v": 0 }, "time": "2020-06-08T18:09:10.607Z", "__v": 0 }, { "_id": "5ede0e4a1277e423ae547174", "name": "刺客", "parent": { "_id": "5ed5bca7ef2a8061682f7b81", "name": "英雄", "time": "2020-06-02T10:42:47.937Z", "__v": 0 }, "time": "2020-06-08T18:09:14.432Z", "__v": 0 } ] } ``` #### 2.按照ID查询分类接口 + 请求URL: ```javascript /admin/rest/category/inquire/:aid ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/category/inquire/:aid ``` + 参数类型: query > 使用的是动态路由参数 | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :--: | | aid | Y | string | id | + 返回示例 ```javascript { "status": 1, "message": "成功", "data": { "_id": "5ed5bbb60f7ad48378b69a23", "name": "文章", "time": "2020-06-02T10:38:46.508Z", "__v": 0 } } ``` #### 3.添加分类接口 + 请求url: ```javascript /admin/rest/category/add ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/category/add ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明| | :----: | :------: | :----: | :------:| | name | Y | string | 需要更新的分类的id | | parent | N | string | 如果需父级分类则需要传入父级id | + 返回示例 ``` { data: null message: "创建成功" status: 1 } ``` #### 4.更新分类接口 + 请求url: ```javascript /admin/rest/category/update ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/category/update ``` + 参数类型: params | 参数 | 是否必选 | 类型 |说明 | | :---: | :------: | :----: | :------: | | id | Y | string | 需要更新的分类的id | | query | Y | string | 需要更新的分类的名称;示例:query: {name: "活动2"} | + 回示例 ```javascript { name: "活动2" parent: "5ed5bbb60f7ad48378b69a23" time: "2020-06-11T10:39:07.650Z" __v: 0 _id: "5ee1994b4c0de9ca25c19470" message: "更新成功" status: 1 } ``` #### 5.删除分类接口 + 请求url: ```javascript /admin/rest/category/delete ``` + 请求方式: ```javascript POST ``` + 示例: ``` http://39.107.233.206:5522/admin/rest/category/delete ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :----------------: | | id | Y | string | 需要更新的分类的id | + 返回示例 ```javascript { name: "活动2" parent: "5ed5bbb60f7ad48378b69a23" time: "2020-06-11T10:39:07.650Z" __v: 0 _id: "5ee1994b4c0de9ca25c19470" message: "删除成功" status: 1 } ``` #### 6.上传图片接口 + 请求url: ```javascript /admin/rest/category/upload ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/category/upload ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :--: | :-----------------------:| | | | | 可以使用element的上传组件 | > 参数示例: > > ![image.png](https://i.loli.net/2020/06/11/2G5hm7gZIxAYskd.png) > > 方法示例(此示例是富文本中的自定义上传图片方法,现在暂时使用服务器储存图片,以后希望改为oss): > > ```javascript > handleImageAdded: function (file, Editor, cursorLocation, resetUploader) { > // An example of using FormData > // NOTE: Your key could be different such as: > // formData.append('file', file) > var formData = new FormData(); > formData.append("file", file);//第一个参数是文件名,必须为file;因为后台默认为file > axios({ > url: "http://127.0.0.1:8000/admin/rest/goods/upload", > method: "POST", > data: formData, > headers: { > "Content-type": "multipart/form-data; boundary=something" > } > }) > .then(result => { > let url = result.data; // Get url from response > Editor.insertEmbed(cursorLocation, "image", url); > resetUploader(); > }) > .catch(err => { > console.log(err); > }); > } > ``` > > + 返回示例 ```javascript { data: "http://127.0.0.1:8000/upload/image/file-1591843855474.jpg" message: "上传成功" status: 1 } ``` ### 二、物品部分 #### 7.查询物品接口 + 请求url: ```javascript /admin/rest/goods/inquire ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/goods/inquire ``` + 参数类型: query | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :--: | :--: | | | N | | | + 返回示例 ```javascript { "status": 1, "message": "成功", "data": [ { "_id": "5edf0992a0f48546aedd8784", "name": "急速战靴", "icon": "http://127.0.0.1:8000/upload/image/file-1591675281395.jpg", "time": "2020-06-09T12:01:22.358Z", "__v": 0 }, { "_id": "5edf09c6a0f48546aedd8785", "name": "末世", "icon": "http://127.0.0.1:8000/upload/image/file-1591675333414.jpg", "time": "2020-06-09T12:02:14.675Z", "__v": 0 }, { "_id": "5edf09dca0f48546aedd8786", "name": "泣血之刃", "icon": "http://127.0.0.1:8000/upload/image/file-1591675341094.jpg", "time": "2020-06-09T12:02:36.611Z", "__v": 0 }, { "_id": "5edf09eca0f48546aedd8787", "name": "无尽战刃", "icon": "http://127.0.0.1:8000/upload/image/file-1591675364315.jpg", "time": "2020-06-09T12:02:52.820Z", "__v": 0 }, { "_id": "5edf0a77a0f48546aedd8788", "name": "闪电匕首", "icon": "http://127.0.0.1:8000/upload/image/file-1591675377908.jpg", "time": "2020-06-09T12:05:11.475Z", "__v": 0 }, { "_id": "5edf287ba40afc52c272a44e", "name": "破晓", "icon": "http://127.0.0.1:8000/upload/image/file-1591683195058.jpg", "time": "2020-06-09T14:13:15.915Z", "__v": 0 } ] } ``` #### 8.按照ID查询物品接口 + 请求URL: ```javascript /admin/rest/goods/inquire/:aid ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/goods/inquire/:aid ``` + 参数类型: query > 使用的是动态路由参数 | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :--: | | aid | Y | string | id | + 返回示例 ```javascript { "status": 1, "message": "成功", "data": { "_id": "5edf0992a0f48546aedd8784", "name": "急速战靴", "icon": "http://127.0.0.1:8000/upload/image/file-1591675281395.jpg", "time": "2020-06-09T12:01:22.358Z", "__v": 0 } } ``` #### 9.添加物品接口 + 请求url: ```javascript /admin/rest/goods/add ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/goods/add ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :---------------------: | | name | Y | string | 需要更新的物品的id | | icon | Y | string | 这是你上传的物品图片url | + 返回示例 ```javascript { icon: "http://127.0.0.1:8000/upload/image/file-1591925484873.jpg" name: "ccc" time: "2020-06-12T09:31:26.799Z" __v: 0 _id: "5ee2daeed42fa4c0856b56c0" message: "创建成功" status: 1 } ``` #### 10.更新物品接口 + 请求url: ```javascript /admin/rest/goods/update ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/goods/update ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :---: | :------: | :----: | :----------------------------------------------: | | id | Y | string | 需要更新的物品的id | | query | Y | string | 需要更新的分类的名称;示例:query: {name: "活动2"} | + 回示例 ```javascript { icon: "http://127.0.0.1:8000/upload/image/file-1591925484873.jpg" name: "bbb" time: "2020-06-12T09:31:26.799Z" __v: 0 _id: "5ee2daeed42fa4c0856b56c0" message: "更新成功" status: 1 } ``` #### 11.删除物品接口 + 请求url: ```javascript /admin/rest/goods/delete ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/goods/delete ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :----------------: | | id | Y | string | 需要更新的物品的id | + 返回示例 ```javascript { icon: "http://127.0.0.1:8000/upload/image/file-1591925484873.jpg" name: "bbb" time: "2020-06-12T09:31:26.799Z" __v: 0 _id: "5ee2daeed42fa4c0856b56c0" message: "删除成功" status: 1 } ``` ### 三、英雄部分 #### 12.查询英雄接口 + 请求url: ```javascript /admin/rest/heros/inquire ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/heros/inquire ``` + 参数类型: query | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :--: | :--: | | | N | | | + 返回示例 ```javascript { "status": 1, "message": "成功", "data": [ { "scores": { "difficult": 3, "skills": 6, "attack": 8, "survive": 6 }, "categories": [ { "name": "射手", "_id": "5ede0e611277e423ae547175", "parent": "5ed5bca7ef2a8061682f7b81", "time": "2020-06-08T18:09:37.254Z", "__v": 0 } ], "goods": [ { "_id": "5edf287ba40afc52c272a44e", "name": "破晓", "icon": "http://127.0.0.1:8000/upload/image/file-1591683195058.jpg", "time": "2020-06-09T14:13:15.915Z", "__v": 0 }, { "_id": "5edf0a77a0f48546aedd8788", "name": "闪电匕首", "icon": "http://127.0.0.1:8000/upload/image/file-1591675377908.jpg", "time": "2020-06-09T12:05:11.475Z", "__v": 0 }, { "_id": "5edf09eca0f48546aedd8787", "name": "无尽战刃", "icon": "http://127.0.0.1:8000/upload/image/file-1591675364315.jpg", "time": "2020-06-09T12:02:52.820Z", "__v": 0 }, { "_id": "5edf09dca0f48546aedd8786", "name": "泣血之刃", "icon": "http://127.0.0.1:8000/upload/image/file-1591675341094.jpg", "time": "2020-06-09T12:02:36.611Z", "__v": 0 }, { "_id": "5edf09c6a0f48546aedd8785", "name": "末世", "icon": "http://127.0.0.1:8000/upload/image/file-1591675333414.jpg", "time": "2020-06-09T12:02:14.675Z", "__v": 0 }, { "_id": "5edf0992a0f48546aedd8784", "name": "急速战靴", "icon": "http://127.0.0.1:8000/upload/image/file-1591675281395.jpg", "time": "2020-06-09T12:01:22.358Z", "__v": 0 } ], "goods2": [], "_id": "5edf3e6091740b63726438cc", "name": "后裔", "avatar": "http://127.0.0.1:8000/upload/image/file-1591688752388.jpg", "title": "半神之弓", "banner": "http://127.0.0.1:8000/upload/image/file-1591688745368.jpg", "skills": [ { "_id": "5edf3e6091740b63726438cd", "icon": "http://127.0.0.1:8000/upload/image/file-1591688693661.png", "name": "惩戒射击", "delay": "0", "cost": "0", "description": "后羿的普攻命中敌人后增加自身5%攻击速度,可叠加至多3层。当攻速加成叠加到3层时,后羿的普攻将射出3支箭矢,每支箭矢造成原伤害的40%,强化持续3秒。(期间每次命中刷新持续时间)", "tips": "小提示:后羿需要进行三次普攻命中来触发被动效果,一旦触发被动以后,将会造成高额伤害。" }, { "_id": "5ee1e86198a38b0b1e1ae735", "icon": "http://127.0.0.1:8000/upload/image/file-1591863362245.png", "name": "疯狂设计", "delay": "3", "cost": "3", "description": "我不玩也有戏", "tips": "我不玩也有戏" } ], "usagesTips": "在触发被动惩戒射击以后,再开启1技能-多重箭矢可以让后羿的普攻输出达到最大化。到达4级以后,时刻关注场上的变化,必要的时候利用大招支援队友。", "battleTips": "后羿很脆弱,并且缺乏自保能力,在输出的时候要注意自己的位置,如果情况比较危险,不适合普攻输出,可以在远处不断利用2技能落日余晖来攻击敌人。", "partners": [], "time": "2020-06-09T15:46:40.179Z", "__v": 0 } ] } ``` #### 13.按照ID查询英雄接口 + 请求URL: ```javascript /admin/rest/heros/inquire/:aid ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/heros/inquire/:aid ``` + 参数类型: query > 使用的是动态路由参数 | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :--: | | aid | Y | string | id | + 返回示例 ```javascript { "status": 1, "message": "成功", "data": { "scores": { "difficult": 3, "skills": 6, "attack": 8, "survive": 6 }, "categories": [ "5ede0e611277e423ae547175" ], "goods": [ "5edf287ba40afc52c272a44e", "5edf0a77a0f48546aedd8788", "5edf09eca0f48546aedd8787", "5edf09dca0f48546aedd8786", "5edf09c6a0f48546aedd8785", "5edf0992a0f48546aedd8784" ], "goods2": [], "_id": "5edf3e6091740b63726438cc", "name": "后裔", "avatar": "http://127.0.0.1:8000/upload/image/file-1591688752388.jpg", "title": "半神之弓", "banner": "http://127.0.0.1:8000/upload/image/file-1591688745368.jpg", "skills": [ { "_id": "5edf3e6091740b63726438cd", "icon": "http://127.0.0.1:8000/upload/image/file-1591688693661.png", "name": "惩戒射击", "delay": "0", "cost": "0", "description": "后羿的普攻命中敌人后增加自身5%攻击速度,可叠加至多3层。当攻速加成叠加到3层时,后羿的普攻将射出3支箭矢,每支箭矢造成原伤害的40%,强化持续3秒。(期间每次命中刷新持续时间)", "tips": "小提示:后羿需要进行三次普攻命中来触发被动效果,一旦触发被动以后,将会造成高额伤害。" }, { "_id": "5ee1e86198a38b0b1e1ae735", "icon": "http://127.0.0.1:8000/upload/image/file-1591863362245.png", "name": "疯狂设计", "delay": "3", "cost": "3", "description": "我不玩也有戏", "tips": "我不玩也有戏" } ], "usagesTips": "在触发被动惩戒射击以后,再开启1技能-多重箭矢可以让后羿的普攻输出达到最大化。到达4级以后,时刻关注场上的变化,必要的时候利用大招支援队友。", "battleTips": "后羿很脆弱,并且缺乏自保能力,在输出的时候要注意自己的位置,如果情况比较危险,不适合普攻输出,可以在远处不断利用2技能落日余晖来攻击敌人。", "partners": [], "time": "2020-06-09T15:46:40.179Z", "__v": 0 } }{ "status": 1, "message": "成功", "data": { "_id": "5edf0992a0f48546aedd8784", "name": "急速战靴", "icon": "http://127.0.0.1:8000/upload/image/file-1591675281395.jpg", "time": "2020-06-09T12:01:22.358Z", "__v": 0 } } ``` #### 14:添加英雄接口 > 详细参数请参考返回示例;数组参数一般为选中的id + 请求url: ```javascript /admin/rest/heros/add ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/heros/add ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--------: | :------: | :----: | :---------------------: | | attack | Y | number | 攻击指数 | | avatar | Y | string | 需要更新的分类的id | | banner | Y | string | 这是你上传的物品图片url | | battleTips | Y | string | 对战提示 | | categories | Y | array | 分类(可多选) | | difficult | Y | number | 难度指数 | | goods | Y | array | 推荐出装 | | goods2 | N | array | 推荐出装2 | | name | Y | string | 英雄名称 | | partners | N | array | 推荐搭档 | | scores | N | array | 评分 | | skills | N | array | 技能 | | survive | Y | number | 生存指数 | | title | Y | string | 称号 | | usagesTips | Y | string | 使用提示 | + 返回示例 ```javascript { data:{ avatar: "http://127.0.0.1:8000/upload/image/file-1592294264889.jpg" banner: "http://127.0.0.1:8000/upload/image/file-1592294267702.jpg" battleTips: "ccc" categories: ["5ede0e401277e423ae547172"] goods: ["5edf0a77a0f48546aedd8788", "5edf09dca0f48546aedd8786", "5edf09c6a0f48546aedd8785"] goods2: ["5edf09eca0f48546aedd8787", "5edf09dca0f48546aedd8786", "5edf09c6a0f48546aedd8785"] name: "后裔s" partners: [] scores: {difficult: 6, attack: 8, survive: 5} skills: [] time: "2020-06-16T15:58:28.323Z" title: "半神之弓" usagesTips: "cccc" __v: 0 _id: "5ee87ba4163a89af64d35e62" }, message: "创建成功" status: 1 } ``` #### 15.更新英雄接口 + 请求url: ```javascript /admin/rest/heros/update ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/heros/update ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--------: | :------: | :----: | :---------------------: | | attack | Y | number | 攻击指数 | | avatar | Y | string | 需要更新的分类的id | | banner | Y | string | 这是你上传的物品图片url | | battleTips | Y | string | 对战提示 | | categories | Y | array | 分类(可多选) | | difficult | Y | number | 难度指数 | | goods | Y | array | 推荐出装 | | goods2 | N | array | 推荐出装2 | | name | Y | string | 英雄名称 | | partners | N | array | 推荐搭档 | | scores | N | 评分 | | | skills | N | array | 技能 | | survive | Y | number | 生存指数 | | title | Y | string | 称号 | | usagesTips | Y | string | 使用提示 | + 回示例 ```javascript { data:{ avatar: "http://127.0.0.1:8000/upload/image/file-1592294264889.jpg" banner: "http://127.0.0.1:8000/upload/image/file-1592294267702.jpg" battleTips: "ccc" categories: ["5ede0e401277e423ae547172"] goods: ["5edf0a77a0f48546aedd8788", "5edf09dca0f48546aedd8786", "5edf09c6a0f48546aedd8785"] goods2: ["5edf09eca0f48546aedd8787", "5edf09dca0f48546aedd8786", "5edf09c6a0f48546aedd8785"] name: "后裔s" partners: [] scores: {difficult: 6, attack: 8, survive: 5} skills: [] time: "2020-06-16T15:58:28.323Z" title: "半神之弓" usagesTips: "cccc" __v: 0 _id: "5ee87ba4163a89af64d35e62" }, message: "更新成功 status: 1 } ``` #### 16.删除英雄接口 + 请求url: ```javascript /admin/rest/heros/delete ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/heros/delete ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :----------------: | | id | Y | string | 需要删除的英雄的id | + 返回示例 ```javascript { data:{ avatar: "http://127.0.0.1:8000/upload/image/file-1592294264889.jpg" banner: "http://127.0.0.1:8000/upload/image/file-1592294267702.jpg" battleTips: "ccc" categories: ["5ede0e401277e423ae547172"] goods: ["5edf0a77a0f48546aedd8788", "5edf09dca0f48546aedd8786", "5edf09c6a0f48546aedd8785"] goods2: ["5edf09eca0f48546aedd8787", "5edf09dca0f48546aedd8786", "5edf09c6a0f48546aedd8785"] name: "后裔s" partners: [] scores: {difficult: 6, attack: 8, survive: 5} skills: [] time: "2020-06-16T15:58:28.323Z" title: "半神之弓" usagesTips: "cccc" __v: 0 _id: "5ee87ba4163a89af64d35e62" }, message: "删除成功" status: 1 } ``` ### 四、文章部分 #### 17.查询文章接口 + 请求url: ```javascript /admin/rest/articles/inquire ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/articles/inquire ``` + 参数类型: query | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :--: | :--: | | | N | | | + 返回示例 ```javascript { "status": 1, "message": "成功", "data": [ { "content": "这是默认内容", "categories": [ { "name": "赛事", "_id": "5ee1c9184c0de9ca25c19473", "parent": "5ed5bbb60f7ad48378b69a23", "time": "2020-06-11T14:03:04.257Z", "__v": 0 }, { "name": "活动", "_id": "5ee1c90f4c0de9ca25c19472", "parent": "5ed5bbb60f7ad48378b69a23", "time": "2020-06-11T14:02:55.364Z", "__v": 0 } ], "_id": "5ee1d3625bdbade6394ba8b5", "title": "测试文章", "time": "2020-06-11T14:46:58.105Z", "__v": 0 }, { "content": "

这是一个标题文章

\t\t\t\t\t作者:阿臻

精灵摘下一片树叶,里面盛了一汪泉水。

鸟儿喝完泉水,准备振翅飞去。

“请再回答我一个问题,”精灵伸出指尖,鸟儿停在上面。

“你要去做什么更重要的事吗?我这里又稻谷也有泉水。”

“我要去那片开着风信子的山谷,去看那朵风信子。”

“为什么?它能驱赶你的饥饿?”

“不能。”

“它能滋润你的干渴?”

“不能。”

“那你为什么要去看它呢?”

“我需要它啊。”

“为什么需要?”

“我爱它啊。”

“为什么爱它?”

\ufeff

“我日日夜夜都在思念它。”

“为什么思念它?”

“我爱它。”

精灵沉默了片刻,又提出一个问题:

“你为什么只爱那一朵风信子呢?山谷里有无数朵风信子。”

“因为它是唯一的一朵啊。”

“为什么?它和其他所有的风信子有什么不同的地方吗?”

“有的。”

“哪里不同呢?”

“只有它才是我爱的那一朵啊。”

精灵忽然轻轻笑了起来,鸟儿振翅而去

", "categories": [ { "name": "新闻", "_id": "5ee1c9014c0de9ca25c19471", "parent": "5ed5bbb60f7ad48378b69a23", "time": "2020-06-11T14:02:41.413Z", "__v": 0 } ], "_id": "5ee1dda75bdbade6394ba8b6", "title": "这是一个测试的新闻", "time": "2020-06-11T15:30:47.327Z", "__v": 0 } ] } ``` #### 18.按照ID查询文章接口 + 请求URL: ```javascript /admin/rest/articles/inquire/:aid ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/articles/inquire/:aid ``` + 参数类型: query > 使用的是动态路由参数 | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :--: | | aid | Y | string | id | + 返回示例 ```javascript { "status": 1, "message": "成功", "data": { "content": "

这是一个标题文章

\t\t\t\t\t作者:阿臻

精灵摘下一片树叶,里面盛了一汪泉水。

鸟儿喝完泉水,准备振翅飞去。

“请再回答我一个问题,”精灵伸出指尖,鸟儿停在上面。

“你要去做什么更重要的事吗?我这里又稻谷也有泉水。”

“我要去那片开着风信子的山谷,去看那朵风信子。”

“为什么?它能驱赶你的饥饿?”

“不能。”

“它能滋润你的干渴?”

“不能。”

“那你为什么要去看它呢?”

“我需要它啊。”

“为什么需要?”

“我爱它啊。”

“为什么爱它?”

\ufeff

“我日日夜夜都在思念它。”

“为什么思念它?”

“我爱它。”

精灵沉默了片刻,又提出一个问题:

“你为什么只爱那一朵风信子呢?山谷里有无数朵风信子。”

“因为它是唯一的一朵啊。”

“为什么?它和其他所有的风信子有什么不同的地方吗?”

“有的。”

“哪里不同呢?”

“只有它才是我爱的那一朵啊。”

精灵忽然轻轻笑了起来,鸟儿振翅而去

", "categories": [ "5ee1c9014c0de9ca25c19471" ], "_id": "5ee1dda75bdbade6394ba8b6", "title": "这是一个测试的新闻", "time": "2020-06-11T15:30:47.327Z", "__v": 0 } } ``` #### 19.添加文章接口 + 请求url: ```javascript /admin/rest/articles/add ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/articles/add ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--------: | :------: | :----: | :-------------------: | | categories | Y | array | 选中的分类数组 | | content | Y | string | 这是上传的物品图片url | | title | Y | string | 文章标题 | + 返回示例 ```javascript { data:{ categories: ["5ee1c9014c0de9ca25c19471", "5ee1c9184c0de9ca25c19473"] content: "

cccc

" time: "2020-06-16T16:28:58.099Z" title: "你好" __v: 0 _id: "5ee882ca163a89af64d35e63" }, message: "创建成功" status: 1 } ``` #### 20.更新文章接口 + 请求url: ```javascript /admin/rest/articles/update ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/articles/update ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :---: | :------: | :----: | :----------------------------------------------------------: | | id | Y | string | 需要更新的分类的id | | query | Y | string | 需要更新的分类的名称;示例:query: {内容和返回示例data是一样的} | + 回示例 ```javascript { data:{ categories: ["5ee1c9014c0de9ca25c19471"] content: "

ccccbbb

" time: "2020-06-16T16:28:58.099Z" title: "你好aaaaa" __v: 0 _id: "5ee882ca163a89af64d35e63" }, message: "更新成功" status: 1 } ``` #### 21.删除文章接口 + 请求url: ```javascript /admin/rest/articles/delete ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/rest/articles/delete ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :-----------------: | | id | Y | string | 需要s删除的文章的id | + 返回示例 ```javascript { data:{ categories: ["5ee1c9014c0de9ca25c19471"] content: "

ccccbbb

" time: "2020-06-16T16:28:58.099Z" title: "你好aaaaa" __v: 0 _id: "5ee882ca163a89af64d35e63" }, message: "删除成功" status: 1 } ``` ### 五、系统设置部分 #### 22.查询所有用户接口 + 请求url: ```javascript /admin/user/inquire ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/user/inquire ``` + 参数类型: query | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :--: | :--: | | | N | | | + 返回示例 ```javascript { "status": 1, "data": [ { "_id": "5ee32a748b364f62bec049c2", "user": "ccc", "time": "2020-06-12T15:10:44.060Z", "__v": 0 }, { "_id": "5ee32fdf8b364f62bec049c3", "user": "张三", "time": "2020-06-12T15:33:51.352Z", "__v": 0 }, { "_id": "5ee73a29bd4ad87461a9b4cd", "user": "1234", "time": "2020-06-15T17:06:49.164Z", "__v": 0 }, { "_id": "5ee86bab32939e8ad42cd2bc", "user": "cccd", "time": "2020-06-16T14:50:19.986Z", "__v": 0 } ], "message": "成功" } ``` #### 23.按照ID查询用户接口 + 请求URL: ```javascript /admin/user/inquire/:aid ``` + 请求方式: ```javascript GET ``` + 示例: ```javascript http://39.107.233.206:5522/admin/user/inquire/:aid ``` + 参数类型: query > 使用的是动态路由参数 > > + 这里的用户密码不会返回 | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :--: | | aid | Y | string | id | + 返回示例 ```javascript { "status": 1, "data": { "_id": "5ee32a748b364f62bec049c2", "user": "ccc", "time": "2020-06-12T15:10:44.060Z", "__v": 0 }, "message": "成功" } ``` #### 24.添加用户接口 > 密码丢失肯定找不回了,使用不可逆的算法加密 + 请求url: ```javascript /admin/user/add ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/user/add ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :------: | :------: | :----: | :----: | | passWord | Y | string | 密码 | | user | Y | string | 用户名 | + 返回示例 ```javascript { data: { passWord: "$2b$10$lwF399o6vKF8EJL6UKY9YO7jBsKAg1pceFODHG6uu9d72Qat55GgW" time: "2020-06-16T16:44:03.119Z" user: "3333" __v: 0 _id: "5ee88653163a89af64d35e64" } message: "创建成功" status: 1 } ``` #### 25.更新用户接口 > 暂时只做了密码验证,其他功能没有 + 请求url: ```javascript /admin/user/update ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/user/update ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :------: | :------: | :----: | :----: | | passWord | Y | string | 密码 | | user | Y | string | 用户名 | + 返回示例 ```javascript ``` #### 26.删除用户 + 请求url: ```javascript /admin/user/delete ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/user/delete ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :--: | :------: | :----: | :-----------------: | | id | Y | string | 需要s删除的用户的id | + 返回示例 ```javascript { data: { passWord: "$2b$10$lwF399o6vKF8EJL6UKY9YO7jBsKAg1pceFODHG6uu9d72Qat55GgW" time: "2020-06-16T16:44:03.119Z" user: "3333" __v: 0 _id: "5ee88653163a89af64d35e64" } message: "删除成功" status: 1 } ``` #### 27.用户登录 + 请求url: ```javascript /admin/user/login ``` + 请求方式: ```javascript POST ``` + 示例: ```javascript http://39.107.233.206:5522/admin/user/login ``` + 参数类型: params | 参数 | 是否必选 | 类型 | 说明 | | :------: | :------: | :----: | :--: | | passWord | Y | string | 密码 | | user | Y | string | 账号 | + 返回示例 > 返回的是token,之后的每一次都需要携带token,否则没有权限 ````javascript { data: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVlZTczYTI5YmQ0YWQ4NzQ2MWE5YjRjZCIsImlhdCI6MTU5MjI5NzY2MH0.U_PNZnpeFS-JAMQ-IXGZ2lq5Msmt0l2Cc5Z0IkXz0Q4" message: "成功" status: 1 } ```` ## 部分截图 ![OQUKNMHGQ_0ON7_DR7P`E`8.png](https://i.loli.net/2020/06/16/dODUQbNKCfsHpEY.png) ![S4GSD_42XC_`B6G4YI2_E_T.png](https://i.loli.net/2020/06/16/N9xBL1IqufHSb38.png)