common_response.py
#!/usr/bin/env python
#encoding=utf-8
# @Time: 2017/5/26 11:38
# @Auhtor: en:zhujin
# @File:
# Description: None
import sys
import time
from tornado_swagger import swagger
"""
响应对象
"""
class CommonResponse:
"""
@description:
响应实体对象
@property result: 结果
@ptype result: L{string}
@property request_id: 请求id
@ptype request_id: L{string}
@property error_code: 错误码
@ptype error_code: L{string}
@property message: 消息
@ptype message: L{string}
@property date_time: 响应时间
@ptype date_time: L{date}
@property data: 返回数据对象
@ptype data: L{Object}
"""
def __init__(self,
result="failed",
request_id="",
error_code="",
message="",
date_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()),
data=None):
self.result = result
self.request_id = request_id
self.error_code = error_code
self.message = message
self.date_time = date_time
self.data = data
def set_result(self,result):
self.result = result
def set_request_id(self,request_id):
self.request_id = request_id
def set_error_code(self,error_code):
self.error_code = error_code
def set_message(self,message):
self.message = message
def set_date_time(self,date_time):
self.date_time = date_time
def set_data(self,data):
self.data = data
def set_sumcount(self,sumcount):
self.sumcount = sumcount
responsehander.py
import json
import time,datetime
from util.common_response import CommonResponse
class ResponseHandler():
def set_response(self, handler, data,need_judge_request_id=True):
"""
接口返回对象统一处理
:param handler: 当前接口对应的tornado对象,一般为self
:param data: 返回给前台的数据
:return:
"""
if isinstance(data,dict):
#对字典的处理
if data is None:
data = dict(result="failed")
if not data.has_key("data"):
data["data"] = None
if not data.has_key("date_time"):
data["date_time"] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
if not data.has_key("request_id") and need_judge_request_id:
data["request_id"] = handler.get_argument("request_id")
handler.write(data)
elif isinstance(data,CommonResponse):
#对CommonResponse对象的处理
if data is None:
data = CommonResponse()
if hasattr(data,"date_time"):
data.set_date_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
if not hasattr(data,"request_id") and need_judge_request_id:
data.set_request_id(handler.get_argument("request_id"))
handler.write(json.loads(json.dumps(data,default=lambda obj: obj.__dict__)))
else:
#对其他,比如basestring的处理
handler.write(data)
handler.finish()
