基于flask实现restfulAPI的完整项目

作者:lizhonglin
github: https://github.com/Leezhonglin/
blog: https://leezhonglin.github.io/

基于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、项目目录结构

基于flask实现restfulAPI的完整项目_第1张图片

3、项目架构图

基于flask实现restfulAPI的完整项目_第2张图片

4、项目数据库设计图

基于flask实现restfulAPI的完整项目_第3张图片

5、项目具体介绍

5.1 项目URi 定义
# 部门管理
'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'
5.2 项目请求和响应

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

5.3 请求示例

JSON

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

基于flask实现restfulAPI的完整项目_第4张图片

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

基于flask实现restfulAPI的完整项目_第5张图片

XML

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

基于flask实现restfulAPI的完整项目_第6张图片

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

基于flask实现restfulAPI的完整项目_第7张图片

6. 具体代码实现

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

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

你可能感兴趣的:(Python,flask)