Как определить пользовательский MessageField, как DateTimeField, используя ProtoRPC?
Я хотел бы создать пользовательский MessageField, например DateTimeField. Я создал один следующим образом:
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 получает в формате 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. Заранее спасибо.
1 ответ
Решение
Смотрите документацию Исключения конечных точек.
Например, чтобы отправить 400
raise endpoints.BadRequestException('A bad thing happened.')
Еще несколько полезных ответов:
Возврат пользовательских причин ошибок HTTP в конечных точках Google Cloud
Как можно создать подкласс конечных точек.ServiceException?