本文根據(jù)實際項目中的一部分api 設計抽象出來,實例化成一個簡單小例子蕉朵,暫且叫作「學生管理系統(tǒng)」。
這個系統(tǒng)主要完成下面增刪改查的功能:
包括:
- 學校信息的管理
- 教師信息的管理
- 學生信息的管理
根據(jù)Api請求的動作:
- POST: 增加信息
- GET: 查詢信息
- PUT: 更新信息
- DELETE: 刪除信息
可以以下面一個簡單的實例看這個系統(tǒng)完成什么樣的工作:
發(fā)送curl 命令:
返回結(jié)果:
其他的動作類似的發(fā)送api 請求苞尝,完成相應的動作,真實的項目往往后加上數(shù)據(jù)庫的操作旷痕。
整個流程主要包括:
- restful api 設計
- 數(shù)據(jù)表設計
- 開發(fā):目錄的結(jié)構(gòu)、一致性
- 結(jié)果展示
1. Restful API 設計
主要包括URL 設計和 狀態(tài)碼的設計:
POST:
GET:
PUT:
DELETE:
2. 數(shù)據(jù)庫設計
主要包括:表設計倘要,字段類型等的設計圾亏,鑒于篇幅有限只展示School 表:
School:
3. 開發(fā)
目錄結(jié)構(gòu):考慮兩個因素
- 耦合性
- 擴展性
數(shù)據(jù)庫操作和業(yè)務操作分開,提供接口:
數(shù)據(jù)庫API:
主要使用sqlalchemy 的增刪改查進行封裝:
以add 實例:
flask_api:
主要使用flask 定義不同動作的接口:
以POST示例:
4. 工具
restful api 發(fā)送請求命令工具:
- POSTMAN: chrome 瀏覽器插件
- RESTClient: 火狐瀏覽器插件
- 服務器端:用curl 命令吧
POSTMAN 示例圖:
postman.png
5. 結(jié)果展示
發(fā)送請求(api) --》 數(shù)據(jù)庫增刪改查(數(shù)據(jù)持久化) --》 返回Json 格式的數(shù)據(jù)和狀態(tài)碼(展示)
result:
數(shù)據(jù)庫 school 表中插入這條數(shù)據(jù)封拧,并把插入的數(shù)據(jù)信息展示出來志鹃。
school_post.png
code:
code