python-3.x - 有没有办法在 Falcon 的单个类资源下添加多个 on_get 方法?
问题描述
如果假设我们想在单个类资源中实现以下端点,有没有办法在单个资源中放置多个on_get方法来区分每个端点?因为将它们归为单一类是有意义的,因为它们非常密切相关。
可能的终点:
/api/{id}
/api/v1/{id}
/api/{id}/附加
/api/v1/附加/{id}
解决方案
是的,在 Falcon 2.0 中,该add_route
方法支持suffix
关键字参数,允许您将单个资源类用于多个端点。一些示例代码:
class UserResource:
def on_get(self, req, resp):
resp.media = self.repository.find_all()
def on_get_single(self, req, resp, user_id):
resp.media = self.repository.find_user(user_id)
resource = UserResource()
api = falcon.API()
api.add_route('/users', resource)
api.add_route('/users/{user_id}', resource, suffix='single')
从文档falcon.API.add_route
如果提供后缀,Falcon 会将 GET 请求映射到
on_get_{suffix}()
,将 POST 请求映射到on_post_{suffix}()
等。这样可以将多个密切相关的路由映射到同一个资源。例如,单个资源类可以使用后缀响应器来区分对单个项目的请求与对这些相同项目的集合的请求。
如果您想在 Falcon 的文档中看到有关此用法的另一个相关示例,请在此处阅读。
推荐阅读
- c++ - cpp 尝试加载图像但没有响应的错误
- c# - 无法在 RaycastHit2D 上执行 If 语句,除了最上面的语句
- python - 如何将 2x2 的 matplotlib 网格的 y 值设置为共享常数?
- r - 为什么函数 svyCreateTableOne 有效,但我无法打印连续结果?
- import - 我们可以从 PowerBI 导入一个表两次吗
- azure-functions - Azure Functions - ObjectResult 呈现 JSON,但如何配置?
- java - Android 日记应用 - 搜索 SQLite 数据库并在 ListView 中显示结果
- oracle - 架构更改通知
- julia - 在 Julia 中使用 Arrow.jl 进行数据压缩
- sql - 获取从 SQL 数据库中选择的特定表的大小