表3-1 角色权限表
角色 权限
学生 查看所有课程、查看课程详细信息、订阅课程、评论课程、获取课程资源;
修改个人头像和密码、取消关注订阅课程。
教师 具有学生的所有权限; 创建课程、修改课程、删除课程。
管理员 查看所有用户、禁用用户、重置用户密码;
查看所有课程、删除课程。
通过注册模块注册的用户只能是学生角色。教师和管理员角色为系统内建。相关的模块设计与实现将在第四章详细阐述。
3。4 前后端分离设计
系统分为前端和后端,前后完全解耦合,并行开发。前端专注于用户的行为、数据的展现以及数据的简单处理,从而减轻后端压力。
图3-3 前后端分离方案yfxs
前端与后端交互通过JSON数据格式实现。前端通过访问后端提供的Restful风格API来获取json数据、传输json数据。本部分将会在项目详细设计章节详细说明。
3。4。1和3。4。2小结将介绍两种实现前后端分离开发的工具。文献综述
3。4。1 GitLab的使用
GitLab 是一个用于仓库管理系统的开源项目。使用Ruby语言开发。
图3-4 GitLab代码仓库
项目采用Git管理,采用GitLab作为代码仓库,前端设计和后端设计代码可以分支开发,最后前后端对接,实现系统的完美运行。本系统开发过程中,GitLab显示的commit提交次数为164次,issue建立次数为31次。
3。4。2 Swagger的使用
Swagger包括库、编辑器、代码生成器等很多部分。在Swagger Editor中,我们可以基于YAML语法定义我们的RESTful API,然后它会自动生成一篇排版优美的API文档,并且提供实时预览。
图3-5 Swagger界面
如图3-9所示,通过Swagger工具,后端设计的所有的API信息一目了然。可以看到,courses课程信息下涉及的所有接口方法和接口功能非常清楚。方便了前端的调用和开发的协作。
3。4。3 Restful风格API
使用 RPC 样式架构构建的基于 SOAP 的 Web 服务成为实现 SOA 最常用的方法。RPC 样式的 Web 服务客户端将一个装满数据的信封(包括方法和参数信息)通过 HTTP 发送到服务器。服务器打开信封并使用传入参数执行指定的方法。方法的结果打包到一个信封并作为响应发回客户端。客户端收到响应并打开信封。每个对象都有自己独特的方法以及仅公开一个 URI 的 RPC 样式 Web 服务,URI 表示单个端点。它忽略 HTTP 的大部分特性且仅支持 POST 方法。来.自^优+尔-论,文:网www.youerw.com +QQ752018766-
由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。RESTful Web 服务通常可以通过自动客户端或代表用户的应用程序访问。但是,这种服务的简便性让用户能够与之直接交互,使用它们的 Web 浏览器构建一个 GET URL 并读取返回的内容。
在 RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源[9]。在 REST 样式的 Web 服务中,每个资源都有一个地址。资源本身都是方法调用的目标,方法列表对所有资源都是一样的。这些方法都是标准方法,包括 HTTP GET、POST、PUT、DELETE,还可能包括 HEADER 和 OPTIONS。