【发布时间】:2013-05-12 15:11:16
【问题描述】:
使用最新版本的 Flask 和 Flask-RESTful,我定义了一些非常基本的路由:
def build_uri_rules(uri_map):
for cls, uri in uri_map.iteritems():
api.add_resource(cls, uri)
uris = {
SampleController: '/samples/<string:hash_or_id>',
SampleFamilyController: '/samples/<string:hash_or_id>/family',
}
build_uri_rules(uris)
这适用于“正确”请求的 uris,但是如果 /samples/ 端点在没有参数的情况下被命中,或者 sample*family 端点被空样本 id 命中怎么办?目前,这会导致 404 错误。这工作得很好,但我认为正确的做法是抛出 400 错误,因为他们找到了正确的 URL,但他们的数据结构不正确。有没有办法可以强制这种行为?
附带说明: 浏览 Werkzeug 文档,我看到 werkzeug.routing 允许某些 url 参数的最小长度,但我也看到它的最小值为 1。诚然,我没有寻找为什么会这样,但会这样吗是适合吠叫的树吗?还是我应该简单地创建一个全局 404 处理程序来检查参数的长度并从那里引发 proper 错误?
谢谢!
已编辑:为了代码的正确性。
【问题讨论】:
标签: python-2.7 flask werkzeug