三方接口错误优化

This commit is contained in:
caoqianming 2022-04-11 14:39:17 +08:00
parent b379dadf34
commit b38b76ef81
4 changed files with 15 additions and 6 deletions

View File

@ -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)

View File

@ -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"

View File

@ -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)

View File

@ -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()