2012-11-27 31 views
0

如何控制protoRPC響應中的HTTP狀態代碼?返回GAE的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) 

看來,我認爲在ProtoRPC的API缺乏語義:要麼要求能得到滿足,並返回一個200或將引發異常收益爲404。當然可以在RPC方法中創建一個錯誤響應,但看起來很糟糕。

更新:我發現我也可以爲400提出ApplicationError

回答

0

HTTP狀態碼不是ProtoRPC規範的一部分,因爲ProtoRPC旨在支持HTTP以外的協議。因此它不能有特定的HTTP返回碼。相反,錯誤是通過引發ApplicationError返回的,使用error_name字段指定應用程序特定的錯誤條件。