基於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、項目目錄結構

在這裏插入圖片描述

3、項目架構圖

在這裏插入圖片描述

4、項目數據庫設計圖

在這裏插入圖片描述

5、項目具體介紹

5.1 項目URi 定義
# 部門管理
'http://{host}:{port}/li-boss/<version>/department',
'http://{host}:{port}/li-boss/<version>/department/<int:dpt_id>'

# 部門人員
'http://{host}:{port}/li-boss/<version>/department/staff/<int:dpt_id>'
# 用戶
'http://{host}:{port}/li-boss/<version>/user',
'http://{host}:{port}/li-boss/<version>/user/<int:user_id>',

# 密碼
'http://{host}:{port}/li-boss/<version>/user/<int:user_id>/password'

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

# 角色
'http://{host}:{port}/li-boss/<version>/role',
'http://{host}:{port}/li-boss/<version>/role/<int:role_id>'

#  角色權限
'http://{host}:{port}/li-boss/<version>/role/<role_id>/permission'


# 權限
'http://{host}:{port}/li-boss/<version>/permission'

# 用戶組
'http://{host}:{port}/li-boss/<version>/user/group',
'http://{host}:{port}/li-boss/<version>/user/group/<int:group_id>'

# 用戶組成員
'http://{host}:{port}/li-boss/<version>/user/group/<int:group_id>/staff'

# 獲取用戶組的角色信息
'http://{host}:{port}/li-boss/<version>/user/group/<int:group_id>/role'

# 登陸
'http://{host}:{port}/li-boss/<version>/login'
5.2 項目請求和響應

​ 本項目支持兩種數據請求和響應格式。分別是的JSONXML.如果需要使用XML請求的話需要在URL後面加上 ?format=xml.就可以正常的獲取到XML格式的數據。

5.3 請求示例

JSON

這是一個json請求不需要代token的時候的示例:

在這裏插入圖片描述

加了驗證的需要選擇Bearer Token 驗證模式。這是一個JSON需要帶token驗證的請求示例:

在這裏插入圖片描述

XML

這是一個XML請求不需要代token的時候的示例:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-a0doOuZJ-1572165973312)(/Users/lee/Desktop/Demo/圖片/屏幕快照 2019-10-27 16.35.53.png)]

加了驗證的需要選擇Bearer Token 驗證模式。這是一個XML需要帶token驗證的請求示例:

在這裏插入圖片描述

6. 具體代碼實現

由於本項目代碼內容比較多我就不貼代碼到這個位置了。詳細代碼地址放github上面了。項目地址

自己總計的一些開發經驗,與大家分享,如果覺得有用不忘收藏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章