API设计
<h1>1. 接口设计</h1>
<h3>项目基准路径</h3>
<p><code>http://127.0.0.1:9090</code></p>
<h2>1.1. 用户管理</h2>
<h5>1.1.1 登录用户</h5>
<ul>
<li>根据用户名密码登录</li>
<li>请求路径:<code>/user/login</code></li>
<li>请求类型:<code>post</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>username</td>
<td>是</td>
<td>string</td>
<td>用户名</td>
</tr>
<tr>
<td>password</td>
<td>是</td>
<td>string</td>
<td>用户名</td>
</tr>
</tbody>
</table>
<ul>
<li>登陆成功返回
<pre><code>{
"success": 200,
"message": "登陆成功",
"data": {
"uid": 1,
"username": "Alen",
"headimg": "https://profile.csdnimg.cn/8/E/4/0_ggalsobeetwn",
"state": "在线",
}
}</code></pre>
<h5>1.1.2 注册用户</h5></li>
<li>根据用户名密码注册</li>
<li>请求路径:<code>/user/register</code></li>
<li>请求类型:<code>post</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>username</td>
<td>是</td>
<td>string</td>
<td>用户名</td>
</tr>
<tr>
<td>password</td>
<td>是</td>
<td>string</td>
<td>密码</td>
</tr>
</tbody>
</table>
<ul>
<li>注册成功返回</li>
</ul>
<pre><code>{
"state": 200,
"success": "注册成功",
"user": {
"uid": 1,
"headimg": "https://profile.csdnimg.cn/8/E/4/0_ggalsobeetwn",
"password": "MyPassword"
}
}</code></pre>
<h5>1.1.3 登出用户</h5>
<ul>
<li>根据传入的username更改账户状态为离线</li>
<li>请求路径:<code>/user/exit</code></li>
<li>请求类型:<code>post</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>username</td>
<td>是</td>
<td>String</td>
<td>用户名</td>
</tr>
</tbody>
</table>
<ul>
<li>登出成功返回</li>
</ul>
<pre><code>{
"state":200,
"success": "登出成功"
}</code></pre>
<h4>1.1.4 注销用户</h4>
<ul>
<li>传入用户名且需要密码确认注册操作</li>
<li>请求路径:<code>/user/logout</code></li>
<li>请求类型:<code>post</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>username</td>
<td>是</td>
<td>string</td>
<td>用户名</td>
</tr>
<tr>
<td>password</td>
<td>是</td>
<td>string</td>
<td>密码</td>
</tr>
</tbody>
</table>
<ul>
<li>注销成功返回</li>
</ul>
<pre><code>{
"state": 200,
"success": "注销成功"
}</code></pre>
<h2>1.2. 帖子管理</h2>
<h5>1.2.1 添加帖子</h5>
<ul>
<li>根据参数添加帖子</li>
<li>请求路径:<code>/posts/add</code></li>
<li>请求类型:<code>post</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>uid</td>
<td>是</td>
<td>int</td>
<td>用户id</td>
</tr>
<tr>
<td>sid</td>
<td>是</td>
<td>int</td>
<td>归属版块</td>
</tr>
<tr>
<td>title</td>
<td>是</td>
<td>string</td>
<td>标题</td>
</tr>
<tr>
<td>content</td>
<td>是</td>
<td>string</td>
<td>内容</td>
</tr>
<tr>
<td>createdate</td>
<td>否</td>
<td>string</td>
<td>创建时间,由数据库或前台获取当前时间</td>
</tr>
<tr>
<td>tags</td>
<td>否</td>
<td>string</td>
<td>标签</td>
</tr>
</tbody>
</table>
<ul>
<li>添加成功返回,返回帖子链接由于跳转</li>
</ul>
<pre><code>{
"state": 200,
"success": "添加成功",
"posts_href": "http://127.0.0.1:9090/user/logout"
}</code></pre>
<h5>1.2.2 删除帖子</h5>
<ul>
<li>根据pid删除帖子</li>
<li>请求路径:<code>/posts/delete/pid</code></li>
<li>请求类型:<code>get</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>pid</td>
<td>是</td>
<td>int</td>
<td>帖子id</td>
</tr>
</tbody>
</table>
<ul>
<li>删除成功返回
<pre><code>{
"state": 200,
"success": "删除成功"
}</code></pre></li>
</ul>
<h5>1.2.3 修改帖子</h5>
<ul>
<li>根据pid修改帖子</li>
<li>请求路径:<code>/posts/update</code></li>
<li>请求类型:<code>post</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>pid</td>
<td>是</td>
<td>int</td>
<td>帖子id</td>
</tr>
<tr>
<td>uid</td>
<td>是</td>
<td>int</td>
<td>用户id</td>
</tr>
<tr>
<td>sid</td>
<td>是</td>
<td>int</td>
<td>归属版块</td>
</tr>
<tr>
<td>title</td>
<td>是</td>
<td>string</td>
<td>标题</td>
</tr>
<tr>
<td>content</td>
<td>是</td>
<td>string</td>
<td>内容</td>
</tr>
<tr>
<td>createdate</td>
<td>否</td>
<td>string</td>
<td>创建时间,由数据库或前台获取当前时间</td>
</tr>
<tr>
<td>tags</td>
<td>是</td>
<td>string</td>
<td>标签</td>
</tr>
</tbody>
</table>
<ul>
<li>修改成功返回,返回帖子链接由于跳转</li>
</ul>
<pre><code>{
"state": 200,
"success": "修改成功",
"posts_href": "http://127.0.0.1:9090/user/logout"
}</code></pre>
<h5>1.2.4 查询帖子</h5>
<ul>
<li>根据关键字query查询帖子</li>
<li>请求路径:<code>/posts/select/:query</code></li>
<li>请求类型:<code>get</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>query</td>
<td>否</td>
<td>String</td>
<td>关键字</td>
</tr>
<tr>
<td>pageinfo</td>
<td>否</td>
<td>index</td>
<td>查询第几页,不填可以用element组件实现</td>
</tr>
</tbody>
</table>
<ul>
<li>查询成功返回
<pre><code>{
"state": 200,
"success": "查询成功",
"posts": [
{
"uid": 1,
"pid": 1,
"sid": 1,
"title": "标题",
"content": "内容",
"createdate": "创建时间",
"tags": "标签",
"pageview": "浏览量"
},
{
"uid": 1,
"pid": 1,
"sid": 1,
"title": "标题",
"content": "内容",
"createdate": "创建时间",
"tags": "标签",
"pageview": "浏览量"
}
]
}</code></pre></li>
</ul>
<h2>1.3 权限管理</h2>
<h5>1.3.1 查询权限</h5>
<ul>
<li>查询所有权限</li>
<li>请求路径:<code>/power/select</code></li>
<li>请求类型:<code>get</code></li>
<li>请求参数:</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>query</td>
<td>否</td>
<td>int</td>
<td>关键字</td>
</tr>
</tbody>
</table>
<ul>
<li>查询成功返回</li>
</ul>
<pre><code>{
"state": 200,
"success": "修改成功",
"powers": [
{"powerid": 1, "powername": "添加个人帖子"},
{"powerid": 2, "powername": "删除个人帖子"},
{"powerid": 3, "powername": "修改个人帖子"}
]
}</code></pre>
<h5>1.3.2 修改权限</h5>
<ul>
<li>添加新权限</li>
<li>请求路径:<code>/power/update</code></li>
<li>请求类型:<code>post</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>uid</td>
<td>是</td>
<td>int</td>
<td>给哪个用户修改权限</td>
</tr>
<tr>
<td>powerid</td>
<td>否</td>
<td>String</td>
<td>修改后的id集合,用 , 拼接成字符串</td>
</tr>
</tbody>
</table>
<ul>
<li>修改成功返回,查询最新的权限列表</li>
</ul>
<pre><code>{
"state": 200,
"success": "修改成功",
"powers": [
{"powerid": 1, "powername": "添加个人帖子"},
{"powerid": 2, "powername": "删除个人帖子"},
{"powerid": 3, "powername": "修改个人帖子"}
]
}</code></pre>
<h5>1.3.3 查询角色权限</h5>
<ul>
<li>根据rid查询role表权限,没有rid则查询所有角色权限</li>
<li>请求路径:<code>/roles/select/:rid</code></li>
<li>请求类型:<code>get</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>rid</td>
<td>否</td>
<td>int</td>
<td>给哪个用户修改权限</td>
</tr>
</tbody>
</table>
<ul>
<li>修改成功返回,查询最新的权限列表</li>
</ul>
<pre><code>{
"state": 200,
"success": "查询成功",
"powers": [
{"rid": 1, "rolename": "用户", "rpower": "1,2,3"},
{"rid": 2, "rolename": "管理员", "rpower": "1,2,3,4,5"}
]
}</code></pre>
<h2>1.4 评论管理</h2>
<h5>1.4.1 查询评论</h5>
<ul>
<li>点击帖子跳转详情时查询该帖子的所有评论</li>
<li>请求路径:<code>/power/select</code></li>
<li>请求类型:<code>post</code></li>
<li>
<h2>请求参数</h2>
</li>
</ul>
<h1>New 新增接口</h1>
<h5>注销账号</h5>
<ul>
<li>修改用户名为‘用户已注销’密码为‘0’</li>
<li>请求路径:<code>/user/clear/:uid</code></li>
<li>请求类型:<code>get</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>uid</td>
<td>是</td>
<td>int</td>
<td>用户id</td>
</tr>
</tbody>
</table>
<ul>
<li>修改成功返回提示消息</li>
</ul>
<pre><code>{
"state": 200,
"success": "注销成功"
}</code></pre>
<h5>修改密码</h5>
<ul>
<li>根据传入的密码修改密码,同时传入uid确定需要修改密码的账户</li>
<li>请求路径:<code>/user/updatepwd</code></li>
<li>请求类型:<code>post</code></li>
<li>请求参数</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>必选</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>uid</td>
<td>是</td>
<td>int</td>
<td>用户id</td>
</tr>
<tr>
<td>password</td>
<td>是</td>
<td>String</td>
<td>用户密码</td>
</tr>
</tbody>
</table>
<ul>
<li>修改成功返回提示消息</li>
</ul>
<pre><code>{
"state": 200,
"success": "修改成功"
}</code></pre>