使用 Flask 和 Python 開發(fā)自己的API
本文章將一步一步教你如何使用Flask和Python從頭開始設(shè)置自己的API。教程結(jié)束時(shí),你將能夠從頭開始設(shè)置你自己的API。我將一步一步指導(dǎo)你,使你能夠基于Flask和Python開發(fā)你自己的API。
什么是API?
API代表應(yīng)用程序編程接口。它是你Web應(yīng)用程序的后端部分,通常在你的服務(wù)器上運(yùn)行。API通常用于服務(wù)于你的前端,并且也可以作為第三方集成的接口。API由一系列服務(wù)組成,用于獲取或推送數(shù)據(jù)到你的后端服務(wù)器。
你需要什么?
首先,你需要安裝Python,你按照以下鏈接中解釋的說(shuō)明進(jìn)行安裝:
https://www.python.org/downloads/?source=post_page-----395a9edd21dc--------------------------------
現(xiàn)在,由于我們將使用Flask,我們必須安裝它,但什么是Flask呢?
“Flask是一個(gè)用Python編寫的微Web框架。它被歸類為微框架,因?yàn)樗恍枰囟ǖ墓ぞ呋驇?kù)。[2]它沒有數(shù)據(jù)庫(kù)抽象層、表單驗(yàn)證或任何其他組件,現(xiàn)有的第三方庫(kù)提供常用功能。然而,F(xiàn)lask支持?jǐn)U展,可以添加應(yīng)用程序特性,就好像它們是在Flask本身中實(shí)現(xiàn)的一樣。擴(kuò)展存在于對(duì)象關(guān)系映射器、表單驗(yàn)證、上傳處理、各種開放認(rèn)證技術(shù)和幾個(gè)常見的框架相關(guān)工具。[3]”維基百科
要安裝Flask,你可以使用pip(Python的包安裝程序):
pip install Flask
構(gòu)建你自己的Flask API
在以下示例中,我們將設(shè)置一個(gè)API,以捕獲HTTP POST和GET,并簡(jiǎn)單地返回一條消息以查看它是否工作(你需要?jiǎng)?chuàng)建一個(gè)Python文件,例如flask_api.py來(lái)運(yùn)行)。
# Import Flask
from flask import Flask
app = Flask(__name__)
#Define your paths & methods for your API
@app.route('/getapi',methods=['GET'])
def getapi():
return "GET API test"
@app.route('/postapi',methods=['POST'])
def postapi():
return "POST API test"
#Run the server(by default, the port is 5000)
app.run()
你可以使用這個(gè)命令運(yùn)行應(yīng)用程序:
python flask_api.py
結(jié)果應(yīng)該是:
代碼解釋
首先,你需要導(dǎo)入Flask:
# Import Flaskfrom flask import Flask
然后,你必須指定你的API路徑,例如對(duì)于“127.0.0.1:5000/getapi”:
@app.route('/getapi',methods=['GET'])
對(duì)于每個(gè)路徑,你必須定義一個(gè)函數(shù),當(dāng)請(qǐng)求API路徑時(shí)將調(diào)用該函數(shù)。
def getapi():
return print"GET API test"
請(qǐng)注意,你可以配置每個(gè)路徑支持的方法(在這個(gè)例子中,我指定了第一個(gè)路徑支持GET方法,第二個(gè)路徑支持POST方法)。最后,你必須運(yùn)行你的應(yīng)用程序:
#Run the server(by default, the port is 5000)
app.run()
現(xiàn)在我們可以使用這個(gè)在線工具測(cè)試API:
https://reqbin.com/?source=post_page-----395a9edd21dc--------------------------------
這是GET請(qǐng)求的結(jié)果:
以及POST請(qǐng)求的結(jié)果:
注意:由于服務(wù)器在本地運(yùn)行,服務(wù)器IP是127.0.0.1,5000(默認(rèn))是端口。
如果你想返回一個(gè)JSON而不是簡(jiǎn)單的文本,那么你可以添加這段代碼:
# Import Flask
from flask import Flask
from flask import jsonify
app = Flask(__name__)
#Define your paths
@app.route('/postapijson',methods=['POST'])
def postapi():
return jsonify({'response': 'JSON response works !'})
#Run the server(by default, the port is 5000)
app.run()
結(jié)果將是: