作者:lizhonglin
github: https://github.com/Leezhonglin/
blog: https://leezhonglin.github.io/
了解到一段时间的restfulAPI实现,通用面向对象的用户、角色、权限管理的项目案例来阐述是如何实现restfulAPI接口的实现,今天有空来整理一下。
项目中权限是参照标准的RBAC. 来实现,有良好的扩展性。数据库访问、业务层、接口层分离。保障了代码的可扩展性。基于面向对象的思想实现本项目。具体实现见下面介绍。
RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。具体详细内容自行百度,并不是本文的重点。
RESTFUL特点包括:
1、每一个URI代表1种资源;
2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
3、通过操作资源的表现形式来操作资源;
4、资源的表现形式是XML或者HTML;
5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
本项目中主要使用的请求类型的定义:
GET: 获取资源信息
POST: 添加资源信息
PUT: 修改资源信息
DELETE: 删除资源信息
# 部门管理
'http://{host}:{port}/li-boss//department',
'http://{host}:{port}/li-boss//department/'
# 部门人员
'http://{host}:{port}/li-boss//department/staff/'
# 用户
'http://{host}:{port}/li-boss//user',
'http://{host}:{port}/li-boss//user/',
# 密码
'http://{host}:{port}/li-boss//user//password'
# 基本信息修改
'http://{host}:{port}/li-boss//user//base/info'
# 角色
'http://{host}:{port}/li-boss//role',
'http://{host}:{port}/li-boss//role/'
# 角色权限
'http://{host}:{port}/li-boss//role//permission'
# 权限
'http://{host}:{port}/li-boss//permission'
# 用户组
'http://{host}:{port}/li-boss//user/group',
'http://{host}:{port}/li-boss//user/group/'
# 用户组成员
'http://{host}:{port}/li-boss//user/group//staff'
# 获取用户组的角色信息
'http://{host}:{port}/li-boss//user/group//role'
# 登陆
'http://{host}:{port}/li-boss//login'
本项目支持两种数据请求和响应格式。分别是的JSON
和XML
.如果需要使用XML
请求的话需要在URL后面加上 ?format=xml
.就可以正常的获取到XML
格式的数据。
JSON
这是一个json
请求不需要代token
的时候的示例:
加了验证的需要选择Bearer Token
验证模式。这是一个JSON
需要带token
验证的请求示例:
XML
这是一个XML
请求不需要代token
的时候的示例:
加了验证的需要选择Bearer Token
验证模式。这是一个XML
需要带token
验证的请求示例:
由于本项目代码内容比较多我就不贴代码到这个位置了。详细代码地址放github上面了。项目地址
自己总计的一些开发经验,与大家分享,如果觉得有用不忘收藏。