在云端点API中返回属性的空列表将删除整个属性

时间:2016-06-13 08:04:01

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

我正在使用Google Cloud Endpoints进行API创建。将空列表返回到属性会导致在json响应中删除整个属性。如何克服这个问题?

完全相同的问题here但它适用于不同的语言。

class ContactMessage(messages.Message):
    user_key = messages.StringField(1)
    name = messages.StringField(2)

class ContactsListResponse(messages.Message):
    contacts = messages.MessageField(ContactMessage, 1, repeated=True)

在API中,如果我使用return ContactsListResponse(contacts=[]),则会移除整个contacts属性。我已尝试过以下但没有效果,

return ContactsListResponse(contacts=[None])
return ContactsListResponse(contacts=[''])

认为contacts属性应包含ContactMessage个对象的列表。所以我也试过了,

return ContactsListResponse(contacts=[ContactMessage()])

但这也不会起作用。想想修改回报就像

一样
return ContactsListResponse(contacts=[ContactMessage(userkey='None')])

应该可以工作,但需要在客户端进行一些额外的验证检查..

0 个答案:

没有答案