返回GAE ProtoRPC的HTTP代码

时间:2012-11-27 00:48:37

标签: python google-app-engine protorpc

如何在protoRPC响应中控制HTTP状态代码?

假设我有以下服务:

class ApiService(remote.Service):

    @remote.method(ApiRequestContextCreate, ApiResponseContextCreate)
    def context_create(self, request):
        cid = helpers.create_context(request.name)
        return ApiResponseContextCreate(cid=cid)

在我看来protoRPC API缺乏语义:要么可以满足请求并返回200,要么引发异常,产生404。当然可以在RPC方法中制作错误响应,但这看起来很糟糕。

更新:我发现我可以为ApplicationError提出400

1 个答案:

答案 0 :(得分:0)

HTTP状态代码不是ProtoRPC规范的一部分,因为ProtoRPC旨在支持除HTTP之外的协议。因此,它不能具有特定于HTTP的返回码。相反,通过引发ApplicationError返回错误,使用error_name字段指定特定于应用程序的错误条件。