我想创建一个像DateTimeField这样的用户定义的MessageField。我创建了一个如下:
class ErrorMessage(Message):
code = StringField(1, required=True)
message = StringField(2, required=True)
reference = StringField(3, required=True)
class ErrorField(MessageField):
message_type = ErrorMessage
@util.positional(3)
def __init__(self, number, **kwargs):
super(ErrorField, self).__init__(self.message_type, number, **kwargs)
听起来不错吗?我已将此ErrorField用作Google云端点响应类中的字段之一。它适用于JS客户端,但与android一起使用时,错误对象的格式为error =“”。
return MyResponse(
isSaved=False,
error=ErrorMessage(code="200", message=simplejson.dumps(form.errors), reference="form validation error")
)
from protorpc.messages import Message, StringField, MessageField
class MyResponse(Message):
isSaved = StringField(1, required=True)
error = ErrorField(2, required = False)
我的端点需要常见的Error类,因为我需要一个自定义的ErrorField。提前谢谢。
答案 0 :(得分:1)
请参阅Endpoints Exceptions文档。
例如,发送400
raise endpoints.BadRequestException('A bad thing happened.')
一些更有帮助的答案:
Returning custom HTTP error reasons in Google Cloud Endpoints
How can one subclass endpoints.ServiceException?