ApiTemplate.py 1.9 KB
# coding=utf-8
#author:        4N
#createtime:    2021/5/18
#email:         nheweijun@sina.com
from app.util.component.ParameterUtil import ParameterUtil
from flask import current_app,request
import traceback
import json
from app.models import db
import app

class ApiTemplate:
    #模板方法
    para = dict()
    api_doc = dict()
    api_name="[未命名]"
    def __init__(self):
        pass

    def get_para(self):

        self.para = ParameterUtil.get_parameter()
        token = request.headers.get('Authorization')

        if self.para.get("token"):
            token = self.para.get("token")
        if token:
            token = token.split(" ")[-1]
            if app.GLOBAL_DIC.get(token):
                self.para["creator"] = app.GLOBAL_DIC.get(token)
            else:
                sql = "select username from dmap_user join dmap_oauth2_token on dmap_user.id=dmap_oauth2_token.user_id where dmap_oauth2_token.access_token='{}'".format(token)
                result = db.session.execute(sql).fetchone()
                if result:
                    self.para["creator"] = result[0]
                    app.GLOBAL_DIC[token] = result[0]

    def para_check(self):
        pass
    def process(self):
        pass
    def log(self):
        ip = request.remote_addr
        current_app.logger.info("[{}][{}]调用了:{},参数为:{}".format(ip,self.para.get("creator","非法用户"),self.api_name,json.dumps(self.para,ensure_ascii=False)))
    # 接口模板
    @property
    def result(self):
        try:
            self.get_para()
            self.para_check()
            self.log()
            res = self.process()
        except Exception as e:
            res=dict()
            res["result"]=False
            res["msg"]=e.__str__()
            current_app.logger.error(e.__str__()+":"+ traceback.format_exc())
        return res