1. 程式人生 > >構建以flask-restful為基礎的restful API

構建以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。首先 我們需要匯入flaskflask_restful

庫。


匯入flaskflask_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當中嘗試過了,嘗試結果如下:

9uttstif5hzgmqcfo75q.png (880Ã511)

當你嘗試還沒有實現的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請求:

wrhocz6jvjdpwknavbqg.png (880Ã379)

 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 請求。

0ohbzpqvqgkc50j6itmo.png (880Ã360)

如果你想詢問PUT 和 POST,你可以點選這個 連結 。我們可以建立一個DELETE方法。在這篇文章中,我沒有建立 HTTP DELETE方法。你可以通過這個 連結 訪問更多關於Flask-RESTful的更多細節。

在這篇文章中,我們談論了使用 Flask 構建 Basic RestFul API 。我希望這篇文章會幫助你設計一個出色的RESTful API。

感謝你的閱讀。