python - 使用 Flask 创建 RESTful API?

标签 python api rest flask

Flask 教程网站 here说要创建一个 RESTful API,您将编写扩展 restful.Resource 的类,然后通过以下方式将它们添加到 API:

app = Flask(__name__)
api = restful.Api(app)
class HelloWorld(restful.Resource):
    def get(self):
        return {'hello': 'world'}

api.add_resource(HelloWorld, '/')

但是,我看过很多教程,它们都只使用带有 @app.route('/path') 装饰器的函数,我更习惯在 Flask 应用程序中看到.例如,here ,他们有:

@app.route('/todo/api/v1.0/tasks', methods=['GET'])
def get_tasks():
    return jsonify({'tasks': tasks})

here :

@app.route('/')
def api_root():
    return 'Welcome'

使用 restful.Resource 类和只使用装饰函数有什么区别?如果没有差异,按照惯例我应该做什么来创建 RESTful API?

最佳答案

简答:

restful.Resource 来自 Flask-Restful扩展名,它不是 Flask 本身。 Miguel's tutorial使用 Flask编写一个 Restful 界面。

长答案:

首先,除了 Flask,还有许多 Flask extensions .尽管它们协同工作,但它们是独立的包,并且由各个作者编写。 Flask-Restful 是对 Flask 的扩展。

Miguel 的教程解释了如何使用 Flask 本身制作一个 restful api。

Flask-Restful为了避免我们中的一些人重新发明轮子, promise 将自定义类(或自定义 Python 数据结构)转变为 Restful Web 服务。 Flask-RESTXFlask-Restful 的一个分支,使用 swagger UI 自动生成 api 文档。

此外,Flask还documented使用 MethodView 允许开发人员编写自己的 restful API。同时,Flask-Restless promise 将 SqlAlchemy 类转变为 Restful Web 服务。

更新(18/07/2016),flask-api将功能/ View 转换为 Restful 界面,由 django restful framework 的作者 Tom Christie 设计.

更新(17/03/2021),Flask-RESTPlus做一些与上述库类似的事情,但它还可以帮助您构建 swagger API 文档,这是一个额外的好处。

通往罗马的道路有很多

关于python - 使用 Flask 创建 RESTful API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28032278/

相关文章:

python - Nodeenv 抛出 python virtualenv 不可用

python - 获取 MySQL 错误

c# - youtube 的桌面应用程序(从桌面应用程序登录和更新个人资料)

java - Rest Web 服务 404 错误 - JBoss Eclipse

rest - 如何在Powershell字符串中转义 "Quotes"?

Python OpenCV 填写红色圈出的圆圈

Python MySQLDB : Get the result of fetchall in a list

c# - Office 365 API 身份验证表单 REST API

ruby-on-rails - 将Rails应用程序与外部API集成的最佳做法?

rest - RESTful Web 服务是否被视为 SOA 的一个示例?