構建以flask-restful為基礎的restful API
原文連結:https://dev.to/aligoren/building-basic-restful-api-with-flask-restful-57oh
大家好,在這篇文章中,我將講述關於使用構建以flask框架為基礎的restful API。在開始之前,我們應該安裝Flask RESTful庫。在本例中我們不會使用任何資料庫,但是你可以使用你自己的。我將展示如何使用flask建立restful API。
構建以flask-restful為基礎的restful API
我們可能需要使用Postman或者是其他相似的軟體來發送請求。我們將使用虛擬環境來作為開發環境。好了,我們先來安裝 flask-restful庫
啟用虛擬環境
virtualenv .
. bin/activate
virtualenv . 表示在虛擬環境virtualenv中
.bin/activate 表示在虛擬目錄下的active檔案
我們已經激活了虛擬環境 現在我們來安裝flask-rustful庫
安裝flask-rustful庫
pip install flask-restful
現在,我們已經安裝好了flask-rustful庫。我們需要建立一個名為 main.py 的檔案。這個名字可以是任意的,不一定是main.py。首先 我們需要匯入flask 和 flask_restful
匯入flask 和 flask_restful庫
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
接下來,我們要建立一個簡單的類,這個類大概是下面這樣:
get請求
class Quotes(Resource): def get(self): return { 'ataturk': { 'quote': ['Yurtta sulh, cihanda sulh.', 'Egemenlik verilmez, alınır.', 'Hayatta en hakiki mürşit ilimdir.'] }, 'linus': { 'quote': ['Talk is cheap. Show me the code.'] } }
在這個類當中,我們使用的是靜態資料,就像我之前說的 能夠使用自己的資料 一樣,現在,我們需要把這個類作為一個資源新增到包裝類的API中。
api.add_resource(Quotes, '/')
最後,我們的程式碼應該是這樣的:
# -*- coding: utf-8 -*-
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class Quotes(Resource):
def get(self):
return {
'ataturk': {
'quote': ['Yurtta sulh, cihanda sulh.',
'Egemenlik verilmez, alınır.',
'Hayatta en hakiki mürşit ilimdir.']
},
'linus': {
'quote': ['Talk is cheap. Show me the code.']
}
}
api.add_resource(Quotes, '/')
if __name__ == '__main__':
app.run(debug=True)
在上面的程式碼中,我們為HTTP的Get請求建立了一個名為get的方法。我們在postman當中嘗試過了,嘗試結果如下:
當你嘗試還沒有實現的HTTP請求是,你將會看到的資訊應該是下面這樣:
{
"message": "The method is not allowed for the requested URL."
}
post請求
例如,你想要在這個類上使用post請求。你必須建立一個名為post的方法。現在我們來為HTTP Post請求建立post方法。首先,我們需要匯入reqparse。所以,我們的匯入語句應該變得像下面這樣:
from flask import Flask
from flask_restful import Resource, Api, reqparse
app = Flask(__name__)
api = Api(app)
然後,我們的post請求將像這樣:
def post(self):
parser.add_argument('quote', type=str)
args = parser.parse_args()
return {
'status': True,
'quote': '{} added. Good'.format(args['quote'])
}
現在讓我們在postman中嘗試一個簡單的HTTP Post請求:
put請求
讓我們來建立一個 PUT 方法來更新這個資源。我們的put方法將像這樣:
def put(self, id):
parser.add_argument('quote', type=str)
args = parser.parse_args()
return {
'id': id,
'status': True,
'quote': 'The quote numbered {} was updated.'.format(id)
}
然後,我們需要改變我們的資源就像這樣:
api.add_resource(Quotes, '/', '/update/<int:id>')
我們使用 postman 建立了一個 HTTP Put 請求。
如果你想詢問PUT 和 POST,你可以點選這個 連結 。我們可以建立一個DELETE方法。在這篇文章中,我沒有建立 HTTP DELETE方法。你可以通過這個 連結 訪問更多關於Flask-RESTful的更多細節。
在這篇文章中,我們談論了使用 Flask 構建 Basic RestFul API 。我希望這篇文章會幫助你設計一個出色的RESTful API。
感謝你的閱讀。