协议RPC消息,空/未设置重复字段

时间:2015-11-08 21:58:26

标签: python google-app-engine google-cloud-endpoints protorpc

我使用Google Cloud Endpoints和protorpc消息(python),我创建了端点来编辑用户信息,如何检查用户何时发送空值以及何时未发送值?客户可以发送{语言:'}来删除语言(设置为无)或{}不执行任何操作。 UserEditMessage.languages被重复检查,因此无论字段是否未设置或设置为[],消息始终返回[],对于非重复字段{语言:''}返回'&# 39;和{}没有。

示例:

>>> t1 = UserEditMessage()
>>> t1
<UserEditMessage
 languages: []>
>>> t2 = UserEditMessage(languages=[])
>>> t2
<UserEditMessage
 languages: []>


>>> t1 = UserEditMessage()
>>> t1.first_name # None
>>> t2 = UserEditMessage(first_name='')
>>> t2.first_name
''

1 个答案:

答案 0 :(得分:0)

不幸的是,这是系统中的flaw。如果您认为有必要,可以通过将重复字段放入其自己的消息并检查消息存在作为列表存在的代理来 来解决它。