我有一个falcon
应用,该应用带有用于获取资源的参数化路由。用户不知道资源的uuid
,因为它是临时的,因此需要重定向。
用户将发出GET / transaction请求,并重定向到返回的302找到的响应路径。
如何从请求路径中解析uuid?
该应用程序如下所示:
api = falcon.API()
api.add_route('/transaction', Transaction)
api.add_route('/transaction/{id}', TransactionItem))
然后调出类似这样的内容:
class Transaction(object):
def on_get(self, req, resp):
id = get_current_id()
resp.status = falcon.HTTPFound('/TransactionItem/{}'.format(id))
class TransactionItem(object):
def on_get(self, req, resp):
// Parse id from path?
transaction = get_transaction(id)
// ...
// include info in the response, etc
resp.status = falcon.HTTP_200
答案 0 :(得分:3)
好的。
Flacon将匹配的路由字段作为关键字参数传递。也就是说,在您的TransactionItem
类中,您的on_get
必须具有其中一个(您可以选择一个对您更清楚的)给定的定义:
# 1st way
def on_get(self, req, resp, id=None):
...
# 2nd way (**kwargs catches all keywords args)
def on_get(self, req, resp, **kwargs):
id = kwargs.get('id')
如果要由猎鹰转换,则传递的字段将作为str
作为dafault传递。您可以使用猎鹰UUIDConverter
中的内置函数
以下是转换器的文档:https://falcon.readthedocs.io/en/stable/api/routing.html#falcon.routing.UUIDConverter