我正在使用 0.17.0 Flask-Restless
并且无法触发预处理器或后处理器函数。作为参考,我有一个 SQLAlchemy 模型,如下所示:
class Transaction(Base):
id = Column(Integer, primary_key=True)
name = Column(Unicode)
description = Column(Unicode)
我可以毫无困难地注册 API 端点,但我无法让这个hello_world
后处理器为我的生活打印"hello world":
def hello_world(**kwargs):
print 'hello world'
manager.create_api(
fraud.data.Transaction
methods=['GET', 'POST', 'DELETE'],
postprocessors={'POST_RESOURCE': [hello_world]},
)
我错过了什么吗?任何指示,提示等将不胜感激!
版本
0.17.0 不支持 POST_RESOURCE
。支持的后处理器类型显示为:
-
'GET_SINGLE'
获取模型的单个实例的请求。 -
'GET_MANY'
获取 * 模型实例的整个集合的请求。 -
'PATCH_SINGLE' or
"PUT_SINGLE"表示修补模型单个实例的请求。 -
'PATCH_MANY'
或'PATCH_SINGLE'
用于修补模型的整个实例集合的请求。 -
'POST'
用于发布模型新实例的请求。 -
'DELETE_SINGLE'
-
'DELETE_MANY'
对于您的使用,请尝试postprocessors={'POST': [hello_world]}
。
引用:
- http://flask-restless.readthedocs.org/en/0.12.0/customizing.html#request-preprocessors-and-postprocessors
- https://github.com/jfinkels/flask-restless/blob/0.17.0/flask_restless/views.py