2014-04-02 44 views
1

所以使用谷歌雲端點的端點,我們可以創建一個自定義的請求消息,並從它創建一個endpoints.ResourceContainer,像這樣的:後來使用如何動態創建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 

這將有助於不會每次都創建新的消息類。我們可以保持重用相同的基類:

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的細節,但似乎沒有可用。
這可能嗎?

回答

0

如果您想將字典轉換爲您可以執行的命名參數列表:endpoints.ResourceContainer(messageCls, **dict)