我正在通过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的内容?
答案 0 :(得分: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状态代码。