从猎鹰中的参数化路由路径解析 uuid



我有一个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

好的。

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传递,如果你想让它被猎鹰转换,你可以使用内置的猎鹰UUIDConverter

这里是转换器的文档:https://falcon.readthedocs.io/en/stable/api/routing.html#falcon.routing.UUIDConverter

相关内容

  • 没有找到相关文章

最新更新