基于flask的restfulAPI项目实现

基于flask的restfulAPI项目实现

了解到一段时间的restfulAPI实现,通用面向对象的用户、角色、权限管理的项目案例来阐述是如何实现restfulAPI接口的实现,今天有空来整理一下。

项目中权限是参照标准的RBAC. 来实现,有良好的扩展性。数据库访问、业务层、接口层分离。保障了代码的可扩展性。基于面向对象的思想实现本项目。具体实现见下面介绍。

1、什么是restful?

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: 删除资源信息

2、项目目录结构

3

3、项目架构图

1

4、项目数据库设计图

2

5、项目具体介绍

5.1 项目URi 定义
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 部门管理
'/li-boss/<version>/department',
'/li-boss/<version>/department/<int:dpt_id>'

# 部门人员
'/li-boss/<version>/department/staff/<int:dpt_id>'

# 用户
'/li-boss/<version>/user',
'/li-boss/<version>/user/<int:user_id>',

# 密码
'/li-boss/<version>/user/<int:user_id>/password'

# 基本信息修改
'/li-boss/<version>/user/<int:user_id>/base/info'

# 角色
'/li-boss/<version>/role',
'/li-boss/<version>/role/<int:role_id>'

# 角色权限
'/li-boss/<version>/role/<role_id>/permission'


# 权限
'/li-boss/<version>/permission'

# 用户组
'/li-boss/<version>/user/group',
'/li-boss/<version>/user/group/<int:group_id>'

# 用户组成员
'/li-boss/<version>/user/group/<int:group_id>/staff'

# 获取用户组的角色信息
'/li-boss/<version>/user/group/<int:group_id>/role'

# 登陆
'/li-boss/<version>/login'
5.2 项目请求和响应

​ 本项目支持两种数据请求和响应格式。分别是的JSONXML.如果需要使用XML请求的话需要在URL后面加上 ?format=xml.就可以正常的获取到XML格式的数据。

5.3 请求示例

JSON

这是一个json请求不需要代token的时候的示例:

4

加了验证的需要选择Bearer Token 验证模式。这是一个JSON需要带token验证的请求示例:

6

XML

这是一个XML请求不需要代token的时候的示例:

5

加了验证的需要选择Bearer Token 验证模式。这是一个XML需要带token验证的请求示例:

7

6. 具体代码实现

由于本项目代码内容比较多我就不贴代码到这个位置了。详细代码地址放github上面了。项目地址

自己总计的一些开发经验,与大家分享,如果觉得有用不忘收藏。

-------------本文结束 感谢您的阅读-------------