如何动态创建端点ResourceContainer

时间:2014-04-02 09:01:44

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

因此,使用Google Cloud Endpoints,我们可以创建自定义请求消息并从中创建endpoints.ResourceContainer,如下所示:

Test_Resource = endpoints.ResourceContainer(message_types.VoidMessage, 
                                   param1=messages.IntegerField(2, required=False),
                                   param2=messages.StringField(3, required=False))

然后在我们的endpoints.method

中使用它
@endpoints.method(Test_Resource, MessageCommon, path='list', http_method='POST', name='list')
    def model_list(self, request):
        pass

我的问题是,我们可以通过传递包含消息类型的字典来动态创建ResourceContainer。像工厂一样创建ResourceContainer:

def get_resource_container(messageCls, dict):
    new_rc = endpoints.ResourceContainer(messageCls) 
    # How do I add in the dict's properties to the ResourceContainer here
    # ...
    return new_rc

这有助于不每次都创建新的Message类。我们可以继续重用相同的基类:

Test_RC2 = get_resource_container(message.types.VoidMessage, dict)
@endpoints.method(Test_RC2, MessageCommon, path='list', http_method='POST', name='list')
    def model_list(self, request):
        pass

我试图搜索ResourceContainer的细节,但似乎没有可用的 这有可能吗?

1 个答案:

答案 0 :(得分:0)

如果您想将dict转换为命名参数列表,您可以执行以下操作:endpoints.ResourceContainer(messageCls, **dict)