0

我通過Google Cloud Endpoints和端點原型數據存儲庫編碼API。如何使用端點原型數據存儲返回除模型之外的其他內容

這裏是我的模型:

class Domain(EndpointsModel): 
    _message_fields_schema = ('id', 'name', 'enabled', 'adminEmails') 
    name = ndb.StringProperty(required=True) 
    enabled = ndb.BooleanProperty(required=True) 
    adminEmails = ndb.StringProperty(repeated=True) 

這是我的刪除方法:

@Domain.method(request_fields=('id',), path='domains/{id}', http_method='DELETE', name='domain.delete') 
def delete_domain(self, domain): 
    if not domain.from_datastore: 
     raise endpoints.NotFoundException('Domain not found.') 
    domain._key.delete() 
    return domain 

我可以返回的東西比模型本身別的嗎?如何返回特定的HTTP狀態代碼或類似VoidMessage?

回答

4

您可以在修飾器中定義response_message參數(而不是更常用的response_fields參數)並將其設置爲VoidMessage。然後從您的方法而不是模型中返回VoidMessage

from protorpc import message_types 

(...) 

@Domain.method(request_fields=('id',), 
       response_message=message_types.VoidMessage, 
       path='domains/{id}', 
       http_method='DELETE', 
       name='domain.delete') 
def delete_domain(self, domain): 

    (...) 

    return message_types.VoidMessage() 

當然你也可以用這種方式返回任何其他protorpc消息。 據我所知,沒有辦法定義返回的HTTP狀態碼。

+0

這是正確的。狀態代碼由動詞和有效載荷的組合確定,或者如果錯誤由錯誤的名稱決定。 – bossylobster

相關問題