""" 通用方法 """ import functools import json import requests from flask import request from db import conserve_data from setting import API_SECRET def judege_api_code(code): """ 判断状态码 Parameters: code: 传入状态码,返回状态码对应状态说明 Returns: 状态码说明信息 """ if code == 0: return '请求成功' elif code == 300000: return '无数据' elif code == 300001: return '请求失败' elif code == 300002: return '账号失效' elif code == 300003: return '账号过期' elif code == 300004: return '访问频率过快' elif code == 300005: return '无权限访问此api' elif code == 300006: return '余额不足' elif code == 300007: return '剩余次数不足' elif code == 300008: return '缺少必要参数' elif code == 300009: return '账号信息有误' elif code == 300010: return 'URL不存在' elif code == 300011: return '此IP无权限访问此api' elif code == 300012: return '报告生成中' def general_request(url, company, db, col): """ 判断状态码 Parameters: url: 传入请求链接,请求后判断状态码, company: 企业名称 db: 数据库名称 col: 集合名称 Returns: '保存成功' """ headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"} # 根据传入url进行请求 res = json.loads(requests.get(url, headers=headers).text) # 判断请求返回结果中的error_code code = res['error_code'] status = judege_api_code(code) # status为请求成功则保存result数据 if status == '请求成功': if col == '十大股东': insert = dict() insert['timeList'] = res['result']['timeList'] insert['holderList'] = res['result']['holderList'] else: insert = dict() insert['result'] = res['result']['items'] insert['total'] = res['result']['total'] conserve_data(db, company, col, insert) return '保存成功' elif status == '无数据': insert = dict() conserve_data(db, company, col, insert) return '保存成功' else: return status def verify_token(func): """ 校验token """ @functools.wraps(func) def internal(*args, **kwargs): try: token = request.headers.get('token') if token != API_SECRET: return {"info": "接口密钥错误"}, 401 except Exception: return {"info": "请求异常"}, 401 return func(*args, **kwargs) return internal def firest_request(url, company, db, col): """ 翻页接口首次调用 Parameters: url: 传入请求链接,请求后判断状态码, company: 企业名称 db: 数据库名称 col: 集合名称 Returns: '保存成功' """ headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"} # 根据传入url进行请求 res = json.loads(requests.get(url, headers=headers).text) # 判断请求返回结果中的error_code code = res['error_code'] status = judege_api_code(code) # status为请求成功则保存result数据 if status == '请求成功': # 保存首次数据,判断页码 insert = dict() insert['result'] = res['result']['items'] insert['total'] = res['result']['total'] conserve_data(db, company, col, insert) if insert['total'] > 20: return insert['taotal'] else: return '保存成功' elif status == '无数据': insert = dict() conserve_data(db, company, col, insert) return '保存成功' else: return status def page_request(url, company, db, col): """ 翻页接口翻页调用 Parameters: url: 传入请求链接,请求后判断状态码, company: 企业名称 db: 数据库名称 col: 集合名称 Returns: '保存成功' """ headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"} # 根据传入url进行请求 res = json.loads(requests.get(url, headers=headers).text) # 判断请求返回结果中的error_code code = res['error_code'] status = judege_api_code(code) # status为请求成功则保存result数据 if status == '请求成功': # 保存首次数据,判断页码 insert = dict() insert['result'] = res['result']['items'] insert['total'] = res['result']['total'] conserve_data(db, company, col, insert) return '保存成功' elif status == '无数据': insert = dict() conserve_data(db, company, col, insert) return '保存成功' else: return status