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

How send lists of objects with GAE endpoints?

我在 GAE 的 API 中工作,我正在使用端点(使用 python)。我想要随响应发送的数据是我此时构建的一些对象。因此,为了发送这个对象,我构建了一个 class with ProtoRPC 消息。我想如何发送它们的列表我构建了一个 class 代表一个集合或它们的列表。

这是基础代码:

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!'),
])

但是如果我想动态构建它呢? 在我的例子中,我有一个 return 一个问候语列表的过程,但我没有找到将其转换为一个问候语集合以使用 EndPoints 发送的方法。

return STORED_GREETINGS

也许我正在搜索 类似这样的东西:

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

但我不知道怎么做。

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

你应该可以做到:

greeting_collection = GreetingCollection()
greeting_collection.items = list_of_greetings

或者,或者:

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

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

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

    STORED_GREETINGS = GreetingCollection(items=greetingItems)