fromflaskimportFlask,jsonify,request,make_responsefrompandasimportread_sqlapp=Flask(__name__)api_ver="0.01"api_secret="secret-secret-key"defdb_eng(host="as010wp.ccubed.local",schema="navision",user_var="USER",pass_var="PASS"):importos,pymssqlfromsqlalchemyimportcreate_enginecon_str="mssql+pymssql://{user}:{passwd}@{host}:1433/{schema}".format(user=os.environ[user_var],passwd=os.environ[pass_var],host=host,schema=schema)try:returncreate_engine(con_str,encoding="utf-8")exceptExceptionase:return"problem connecting to {}: {}".format(host,str(e))@app.route('/obj/<id>',methods=["POST"])defget_obj(id):api_key=request.headers.get('Authorization','')try:ifapi_key==api_secret:db=db_eng()obj_sql=""" select ID, Name, Modified, Compiled, Date, [Version List] as VersionList from Object where ID = {id} """df=read_sql(obj_sql.format(id=id),con=nav)db.dispose()data=df.to_dict(orient="records")returnjsonify(data=data,ver=api_ver)else:returnmake_response("Not Authorized",401)except:returnmake_response("Internal Error",500)@app.route('/ver/<id>')defget_ver(id):returnjsonify(ver=api_ver)if__name__=='__main__':app.run(host='0.0.0.0',port=8009,debug=True)
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.