Вернуться HTTP-код для GAE ProtoRPC
Как я могу контролировать код состояния HTTP в protoRPC
ответ?
Допустим, у меня есть следующий сервис:
class ApiService(remote.Service):
@remote.method(ApiRequestContextCreate, ApiResponseContextCreate)
def context_create(self, request):
cid = helpers.create_context(request.name)
return ApiResponseContextCreate(cid=cid)
Мне кажется, что API-интерфейсу protoRPC не хватает семантики: запрос может быть выполнен и возвращает 200
или возбуждается исключение, уступающее 404
, Конечно, можно создать ответ об ошибке в методе RPC, но это кажется глупым.
Обновление: я нашел, что могу поднять ApplicationError
слишком для 400
,
1 ответ
Код состояния HTTP не является частью спецификации для ProtoRPC, поскольку ProtoRPC предназначен для поддержки протоколов помимо HTTP. Следовательно, он не может иметь специфических для HTTP кодов возврата. Вместо этого ошибки возвращаются путем вызова ApplicationError с использованием поля error_name для указания условий ошибки, специфичных для приложения.