原文链接: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。
感谢你的阅读。