2022-05-02|閱讀時間 ‧ 約 6 分鐘

第一次使用 Python Flask Restful API 就上手 -- 使用 GET 方法

Restful API 其實就是開放一個 EndPoit 的網路接口給其他人使用,並將要做的事情封裝在該接口內,不需要知道真實運作狀況,只要得到答案即可。

1. 首先建立使用Flask一個網路服務, 並驗證一下服務是正常的

範例如下:
#!/bin/python3

# 載入Flask套件
from flask import Flask
# 創建Flask app物件
app = Flask(__name__)
# 建立根目錄路由,並輸出文字
@app.route("/")
def hello():
    return "<h1>Hello , This a Restful Api Server by Flask...</h1>"

if __name__ == "__main__":
# Port 監聽8088,並啟動除錯模式。
    app.run(port=8088, debug=True)
至瀏覽器輸入 http://127.0.0.1:8080
執行127.0.0.1:8088 結果
執行127.0.0.1:8088 結果

2. 接下來並創建products路由,並組合Dict字典回傳

範例如下:
#!/bin/python3
# 載入Flask套件
from flask import Flask
# 創建Flask app物件
app = Flask(__name__)
# 創建 output 範例內容
output = [
    {
        "pid": "1",
        "title": "Example01",
        "price": 10,
        "img": "https://picsum.photos/id/999/1200/600",
        "isAvailable": True
    },
    {
        "id": "2",
        "title": "Example02",
        "price": 60,
        "img": "https://picsum.photos/id/1070/1200/600",
        "isAvailable": True
    }
]

# 建立products路由,回傳 output,及狀態 200
@app.route("/products")
def products():
    return {"products": {"Message": "Get all products..", "output": output}}, 200

if __name__ == "__main__":
    app.run(port=8088, debug=True)
至瀏覽器輸入 http://127.0.0.1:8080/products
執行127.0.0.1:8088/products 結果

3. 使用flask_restful封裝API

#!/bin/python3
# 載入Flask套件
from flask import Flask
# 載入Flask RestFul 套件
from flask_restful import Api, Resource

# 創建Flask app物件
app = Flask(__name__)
# 創建Flask api物件
api = Api(app)
# 創建 output 範例內容
output = [
    {
        "pid": "1",
        "title": "Example01",
        "price": 10,
        "img": "https://picsum.photos/id/999/1200/600",
        "isAvailable": True
    },
    {
        "id": "2",
        "title": "Example02",
        "price": 60,
        "img": "https://picsum.photos/id/1070/1200/600",
        "isAvailable": True
    }
]
# 創建Products 物件並繼承Resource物件
class Products(Resource):
    def get(self):
        return {"products": {"Message": "Get all products..", "output": output}}, 200
# 建立API路由products,並將該路由導向Products物件
api.add_resource(Products, '/products')

if __name__ == "__main__":
    app.run(port=8088, debug=True)
至瀏覽器輸入執行 127.0.0.1:8088/products
執行127.0.0.1:8088/products 結果
其實作法很單純,建立一個EndPoint路由。
並將要輸出的資料或內容擺入,
接下來使用者就可以取得相關資料,
不過上述得介紹都只是簡單的GET方法,
那我們要如何去做新增刪除及修改呢???
請看下一章節囉~~~~
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.