三方接口错误优化
This commit is contained in:
parent
b379dadf34
commit
b38b76ef81
|
@ -12,4 +12,4 @@ class RequestCommonSerializer(serializers.Serializer):
|
|||
method = serializers.ChoiceField(label='请求方法', choices=method_choice, required=False)
|
||||
params = serializers.JSONField(label='请求参数', required=False, allow_null=True)
|
||||
json = serializers.JSONField(label='请求body(json格式)', required=False, allow_null=True)
|
||||
code = serializers.CharField(label='请求短标识', required=False)
|
||||
code = serializers.CharField(label='请求短标识', required=False, allow_null=True)
|
|
@ -1,5 +1,9 @@
|
|||
# 大华API接口
|
||||
dhapis = {
|
||||
"dept_tree":{
|
||||
"url":"/evo-apigw/evo-brm/1.2.0/department/tree",
|
||||
"method":"post"
|
||||
},
|
||||
"dept_create":{
|
||||
"url":"/evo-apigw/evo-brm/1.0.0/department/add",
|
||||
"method":"post"
|
||||
|
|
|
@ -90,7 +90,7 @@ class DhClient:
|
|||
self.request(url, method, params, json, timeout) # 重新请求
|
||||
else:
|
||||
if ret['code'] not in ['0', '100', '00000', '1000', 0, 100, 1000]:
|
||||
detail = '{}|{}{}'.format(str(ret['code']), ret.get('errMsg',''), ret.get('desc', ''))
|
||||
detail = '大华错误:' + '{}|{}{}'.format(str(ret['code']), ret.get('errMsg',''), ret.get('desc', ''))
|
||||
err_detail = dict(detail=detail, code='dh_'+str(ret['code']))
|
||||
if raise_exception:
|
||||
raise ParseError(**err_detail)
|
||||
|
|
|
@ -58,7 +58,7 @@ class XxClient:
|
|||
self.isRuning = False
|
||||
self.t.join()
|
||||
|
||||
def request(self, url:str, method:str='post', params=dict(), json=dict(), timeout=20):
|
||||
def request(self, url:str, method:str='post', params=dict(), json=dict(), timeout=20, raise_exception=True):
|
||||
params['accessToken'] = self.token
|
||||
json['username'] = self.username
|
||||
json['buildId'] = settings.XX_BUILDID
|
||||
|
@ -74,17 +74,22 @@ class XxClient:
|
|||
else:
|
||||
r = getattr(requests, method)('{}{}'.format(settings.XX_BASE_URL, url)
|
||||
, params=params, json=json, verify=False)
|
||||
# if settings.DEBUG:
|
||||
# print_roundtrip(r)
|
||||
if settings.DEBUG:
|
||||
print_roundtrip(r)
|
||||
ret = r.json()
|
||||
if ret.get('errorCode') == '1060000':
|
||||
self.get_token() # 重新获取token
|
||||
self.request(url, method, params, json, timeout) # 重新请求
|
||||
else:
|
||||
if ret['errorCode'] != 0:
|
||||
return 'fail', dict(detail='|'.join(ret['errorMsg']),
|
||||
err_detail = dict(detail='寻息错误:' + '|'.join(ret['errorMsg']),
|
||||
code='xx_' + str(ret['errorCode']))
|
||||
if raise_exception:
|
||||
raise ParseError(**err_detail)
|
||||
return 'fail', err_detail
|
||||
return 'success', ret['data']
|
||||
if raise_exception:
|
||||
raise APIException(**XX_REQUEST_ERROR)
|
||||
return 'error', XX_REQUEST_ERROR
|
||||
|
||||
xxClient = XxClient()
|
Loading…
Reference in New Issue