api.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from flask import Flask, request
  2. from flask_cors import CORS
  3. import json
  4. from jsonschema import validate, ValidationError
  5. import datetime
  6. from services.Exception import ApiException
  7. app = Flask(__name__)
  8. # 配置 CORS,允许所有来源
  9. CORS(app)
  10. def response(message="success", data=None, code=0):
  11. return json.dumps({"message": "", "data": data, "code": code}), 200
  12. @app.errorhandler(ApiException) # 捕捉全局异常
  13. def internal_error(exc:ApiException):
  14. print("Internal error:",exc.msg)
  15. return (
  16. json.dumps({"message": str(exc.msg), "code": exc.code}, ensure_ascii=False),
  17. 200,
  18. )
  19. @app.errorhandler(404)
  20. def page_not_found(e):
  21. return (
  22. json.dumps({"code": 4999, "msg": "请求出错,页面未找到"}, ensure_ascii=False),
  23. 404,
  24. )
  25. @app.route("/", methods=["GET"])
  26. def index():
  27. '''入口文件'''
  28. name = request.args.get("name", "World")
  29. return response(message="",data=f"Hello, {name}!")
  30. def Validateutils(data,schema):
  31. '''数据验证'''
  32. try:
  33. validate(instance=data, schema=schema)
  34. except ValidationError as e:
  35. # 处理验证失败的逻辑
  36. raise ApiException(e.message)