如何在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
。
答案 0 :(得分:0)
HTTP状态代码不是ProtoRPC规范的一部分,因为ProtoRPC旨在支持除HTTP之外的协议。因此,它不能具有特定于HTTP的返回码。相反,通过引发ApplicationError返回错误,使用error_name字段指定特定于应用程序的错误条件。