0

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

例子:

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


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

1 回答 1

0

不幸的是,这是目前系统中的一个缺陷。如果您认为有必要,您可以通过将重复字段放入其自己的消息中并检查消息是否存在作为列表存在的代理来解决此问题。

于 2015-11-11T21:11:07.577 回答