黑羽学院系统API接口

系统功能介绍

黑羽学院系统(HyLearn) 是一款互联网学习系统,产品包括 Web前端、后端、数据库、数据辅助工具。

功能包括:

  • 学习课程、专题发布、订购、学习

  • 账号管理

  • 权限管理

  • 课程分类标签

  • 数据统计分析

该系统可以用来锻炼 Web前后端开发、Qt程序开发、数据分析 等等软件开发技能。适合从业者提升、跳槽、转行就业,也适合应届大学生做毕业设计。

可以报白月黑羽实战班,老师全程指导。 联系方式:微信 18502556834

下载运行

本产品运行在制作好的虚拟机中,实战班学员请联系老师下载安装。

接口概述

本接口是黑羽学院系统 (HyLearn) 前端 和 后端子系统之间的接口。

所有的HTTP请求响应消息,如果有消息体,一律为json格式。

所有的API响应消息,如果操作 不成功,返回消息体 格式如下

{
    "ret": 1,    
    "msg":  "用户名或者密码错误"
}

ret 不为 0 表示操作失败, msg 字段描述 API 操作失败的原因


登录

3种类型的账号:管理员、老师、学生, 均使用该接口进行登录。

前端发送的登录请求中包含账号、密码。

后端接收后,对账号密码的正确性进行校验。

HyLearn 系统使用session会话机制。

如果校验通过,服务端在响应消息头Set-Cookie 中存入sessionid ,该用户的后续请求头Cookie中必须携带sessionid。

请求

  • 请求头
POST /api/sign
Content-Type: application/json
  • 消息体

为json格式

{
    "action" : "signin",
    "username" : "xxxx",
    "password" : "yyyy"
}

action 字段值为 signin 表示登录

username 字段值为登录账号的用户名

password 字段值为登录账号的密码

响应

  • 响应头
200 OK
Content-Type: application/json
Set-Cookie: sessionid=<sessionid数值>
  • 消息体

如果校验通过,返回消息如下

{
    "ret": 0,
    "usertype":1,
    "userid":1,
    "realname":"白月黑羽",
}

ret 为 0 表示登录成功

usertype 是用户类型。 1:超级管理员,8888:其他类型

userid 是用户在系统中的id

realname 是用户的姓名

登录成功后, 服务端在消息头Set-Cookie 中存入sessionid ,该用户的后续请求头Cookie中必须携带sessionid。


如果登录校验失败,返回失败的原因,示例如下

{
    "ret": 1,    
    "msg":  "用户名或者密码错误"
}

ret 不为 0 表示登录失败, msg字段描述登录失败的原因

登出

请求

  • 请求头
POST /api/sign
Cookie: sessionid=<sessionid数值>
Content-Type: application/json
  • 消息体

为json格式

{
    "action" : "signout"
}

action 字段值为 signout 表示退出登录

响应

后端应该根据sessionid清除掉session,然后返回响应消息

  • 响应头
200 OK
Content-Type: application/json
Set-Cookie: sessionid=""
  • 消息体
{
    "ret": 0
}

账号管理

该API接口 用来 列出、添加、修改、删除系统中的账号。

发出账号管理的API 只能是管理员用户。后端要根据session校验。

账号管理的API 路径均为 /api/account

列出账号

用来列出系统中的账号信息。

请求

  • 请求头
GET /api/account?action=listbypage&pagenum=1&pagesize=5&keywords=
Cookie: sessionid=<sessionid数值>
  • url参数
参数名 示例 必要性 含义
action listbypage 必填项 必须为 listbypage
pagesize 3 必填项 分页的 每页获取多少条记录
pagenum 2 必填项 获取第几页的信息
keywords 白月 黑 可选项 搜索关键字,如果提供,表示用户姓名中包含的关键字。 多个关键字以空格隔开,表示姓名中同时包含的关键字词

响应

后端返回列出结果

  • 消息体
{
  "ret": 0,
  "items": [
    {
      "id": 4,
      "username": "student-4",
      "realname": "学生-4",
      "desc": "学生-4",
      "usertype": 8888
    },
    {
      "id": 3,
      "username": "student-3",
      "realname": "学生-3",
      "desc": "学生-3",
      "usertype": 8888
    },
    {
      "id": 2,
      "username": "student-2",
      "realname": "学生-2",
      "desc": "学生-2",
      "usertype": 8888
    },
  ],
  "total": 8,
  "keywords": ""
}

ret 为 0 表示列出成功

total 为 8 表示系统中(不是当前页)总共有8个账号

items 数组 里面包含了当前页中的账号信息。

每个账号信息以如下格式存储

    {
      "id": 2,
      "username": "student-2",
      "realname": "学生-2",
      "desc": "学生-2",
      "usertype": 8888
    },

添加账号

用来添加系统中的账号信息。

请求

  • 请求头
POST /api/account
Cookie: sessionid=<sessionid数值>
Content-Type: application/json
  • 消息体

要添加的账号的具体信息,格式如下

{
  "action": "addone",
  "data": {
    "realname" : "紫一元",
    "username" : "ziyiyuan",
    "password" : "111111",
    "desc"     : "白月黑羽的优秀学员",
    "usergroup": [2,1],
    "permission":[23,22,21]
  }
}

其中

action: 填写 addone, 表示 添加一个账号的操作

realname: 用户的姓名

username: 用户的登录名

password: 用户的密码

desc: 账号描述信息

usergroup: 可选项,以数组的方式指定 该用户所属的用户组对应的id

permission: 可选项,以数组的方式指定 该用户所拥有权限 对应的id

响应

  • 消息体
{
  "ret": 0,
  "id": 5
}

ret 为 0 表示添加成功

id 为添加账号的 id

修改账号

用来修改系统中的账号信息。

请求

  • 请求头
PUT /api/account
Cookie: sessionid=<sessionid数值>
Content-Type: application/json
  • 消息体

要修改的账号的具体信息,格式如下

{
  "action": "modifyone",
  "id": 10,
  "newdata": {
    "realname": "紫一元2",
    "username": "ziyiyuan2",
    "password": "111111",
    "desc": "白月黑羽网站的Python老师,创业公司CTO",
    "usergroup": [2,1],
    "permission":[23,22,21]
  }
}

其中

action: 填写 modifyone ,表示 修改一个账号的操作

id: 要修改账号的 id

newdata : 里面包含了要修改的信息

realname: 用户的姓名修改为什么。如果此项不用修改,该字段不出现

username: 用户的登录名修改为什么。如果此项不用修改,该字段不出现

password: 用户的密码修改为什么。如果此项不用修改,该字段不出现

desc: 账号的描述信息修改为什么。如果此项不用修改,该字段不出现

usergroup: 以数组的方式指定 该用户所属的用户组对应的id。如果此项不用修改,该字段不出现

permission: 以数组的方式指定 该用户所拥有权限 对应的id。如果此项不用修改,该字段不出现

响应

  • 消息体
{
  "ret": 0
}

ret 为 0 表示修改成功

删除账号

用来删除系统中的账号信息。

请求

  • 请求头
DELETE /api/account
Cookie: sessionid=<sessionid数值>
Content-Type: application/json
  • 消息体

格式如下

{
  "action": "deleteone",
  "id": 10
}

其中

action: 填写 deleteone ,表示 删除 一个账号的操作

id: 要删除账号的 id

响应

  • 消息体
{
  "ret": 0
}

ret 为 0 表示删除成功

上一页