【问题标题】:Protocol RPC messages, empty/not set repeated field协议 RPC 消息,空/不设置重复字段
【发布时间】:2015-11-08 21:58:25
【问题描述】:

我正在使用 Google Cloud Endpoints 和 protopc 消息 (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
''

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 2016-09-06
      • 1970-01-01
      相关资源
      最近更新 更多