如何使用GAE端点发送对象列表?

时间:2016-01-12 19:39:12

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

我在GAE的API中工作,我使用端点(使用python)。我希望通过响应发送的数据是我在此刻构建的一些对象。所以,为了发送这个对象,我用ProtoRPC消息构建了一个类。我想如何发送它们的列表我构建了一个代表集合或它们列表的类。

这是基础代码:

class Greeting(messages.Message):
"""Greeting that stores a message."""
message = messages.StringField(1)

class GreetingCollection(messages.Message):
    """Collection of Greetings."""
    items = messages.MessageField(Greeting, 1, repeated=True)

但是当我想要建立一个集合时,我找不到方法。显然,看到文档,我读到我可以构建一个静态集合来发送它,例如:

STORED_GREETINGS = GreetingCollection(items=[
    Greeting(message='hello world!'),
    Greeting(message='goodbye world!'),
])

但是如果我想动态构建它? 在我的情况下,我有一个返回Greetings列表的进程,我找不到将其转换为使用EndPoints发送的Greeting集合的方法。

return STORED_GREETINGS

也许我正在搜索这样的内容

(only orientative)
for greeting in greetings:
   STORED_GREETINGS.add(greeting)

但我不知道该怎么做。

欢迎任何帮助。 非常感谢你。

2 个答案:

答案 0 :(得分:1)

只需构建一个包含Greeting对象的普通列表,并将其分配给GreetingCollection:

    greetingItems = []
    greetingItems.append(Greeting(message='hello world!'))
    greetingItems.append(Greeting(message='goodbye world!'))
    ...

    STORED_GREETINGS = GreetingCollection(items=greetingItems)

答案 1 :(得分:0)

你应该能够做到:

greeting_collection = GreetingCollection()
greeting_collection.items = list_of_greetings

或者,或者:

greeting_collection = GreetingCollection()
greeting_collection.items.extend(iterable_of_greetings)