- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
(这是在 github 上发布的关于很棒的 endpoints-proto-datastore 库的相同问题的副本)
我正在尝试实现我的 API,以便客户端可以在 api 请求中传递一个 '?fields=' url 参数,然后我可以指示查询构建响应并仅返回请求的 collection_fileds。
但是,我不知道如何将url参数传递给@query_method装饰器;这是我的代码:
@Contact.query_method(query_fields=('limit', 'order', 'pageToken'),
collection_fields=('name', 'birthday'),
path='contacts',
name='contacts.list')
def contacts_list(self, query):
return query
如何将请求中的 fields
参数传递给装饰器中的 collection_fields= 命名参数?
最佳答案
这个问题的答案有点类似于Simple Access API (Developer Key) with Google Cloud Endpoint (Python)
在users_id_token.py
, request
对象是一个解析传入请求的 ProtoRPC 对象。但是,即使实际用户没有指定键 'bearer_token'
或 'access_token'
作为 ProtoRPC 消息定义的一部分,如果它们在请求中传递作为查询参数,它们将存储在创建的 ProtoRPC 对象中。
为了访问它们,使用了一种不太为人所知的方法:
request.get_unrecognized_field_info(key)
为什么这很重要?要访问对象的 fields
,我们假设 fields
属性是通过请求传入的。然后,如果您有一个解析为 my_message
的请求,您可以通过
字段
my_message.get_unrecognized_field_info('fields')
在ndb/model.py
,query_method
方法定义了一个局部范围的函数,称为 QueryFromRequestMethod
。其中,直接创建了一个ProtoRPC对象:
request_entity = cls.FromMessage(request)
在你想用的地方
request_entity.get_unrecognized_field_info('fields')
我会建议
endpoints_proto_datastore.ndb.EndpointsModel
并覆盖 query_method
方法来执行您的特殊命令。关于google-app-engine - 如何将 collection_fields 从 api 请求传递给 @query_method 装饰器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369955/
(这是在 github 上发布的关于很棒的 endpoints-proto-datastore 库的相同问题的副本) 我正在尝试实现我的 API,以便客户端可以在 api 请求中传递一个 '?fiel
我是一名优秀的程序员,十分优秀!