Вернуться 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 для указания условий ошибки, специфичных для приложения.

Другие вопросы по тегам