如何return 只调用一个资源端点上的一个文件?
How to return only one document on calling a resource endpoint?
我有一个collection'users'。当我像 /api/users
这样调用资源端点时,它 return 包含所有文档。如果我启用身份验证,我怎么能 return 只有那个用户文档调用 api/users
基于 his/her 用户名?
否则我如何禁用此端点 /api/users
并将身份验证仅设置为 api/users/<email>
如果您使用的是用户限制的资源访问,您可以 Dynamic Lookup filter 使用事件挂钩通过 auth_field
过滤 users
结果。像这样:
from flask import current_app
def pre_GET_users(request, lookup):
username = current_app.auth.get_request_auth_value()
# only return user with current username
lookup["username"] = username
app = Eve()
app.on_pre_GET_accounts += pre_GET_users
app.run()
我有一个collection'users'。当我像 /api/users
这样调用资源端点时,它 return 包含所有文档。如果我启用身份验证,我怎么能 return 只有那个用户文档调用 api/users
基于 his/her 用户名?
否则我如何禁用此端点 /api/users
并将身份验证仅设置为 api/users/<email>
如果您使用的是用户限制的资源访问,您可以 Dynamic Lookup filter 使用事件挂钩通过 auth_field
过滤 users
结果。像这样:
from flask import current_app
def pre_GET_users(request, lookup):
username = current_app.auth.get_request_auth_value()
# only return user with current username
lookup["username"] = username
app = Eve()
app.on_pre_GET_accounts += pre_GET_users
app.run()