from fastapi import FastAPI, Query, Request from datetime import datetime app = FastAPI() @app.get("/") async def root(): return "welcome to fastAPI!" @app.get("/script/getscriparam") async def getscriparam(): data = { "interaction": { "from": 20, "to": 30 }, "bounceRate": { "from": 0.3, "to": 0.4 }, "ctr": { "from": 0.03, "to": 0.05 }, "pagesToViewPerSession": { "from": 2, "to": 3 }, "sessionsPerUser": { "from": 2, "to": 3 } } return data @app.get("/script/success") async def do_success(request: Request): # 获取当前时间 current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 获取请求者的IP地址 client_host = request.client.host # 打印上报成功的时间和IP地址 print(f"上报成功时间: {current_time}, IP地址: {client_host}") data = {} return { "code": 0, "msg": "ok", "data": data } @app.get("/script/failed") async def do_failed(reason: str = None, errortype: str = None): # 获取当前时间 now = datetime.now() # 格式化时间为 年-月-日 时:分:秒 的格式 formatted_now = now.strftime("%Y-%m-%d %H:%M:%S") # 假设这里记录失败原因到日志或数据库 print(f"上报失败,Time: {formatted_now}, 失败原因: {reason},失败类型: {errortype}.") # 实际应用中应使用更专业的日志记录方式 return { "code": 0, "msg": "ok", "data": {} } @app.get("/report/chrome/crash") async def report_chrome_crash(id: str, timestamp: str = Query(None)): # 获取当前时间 now = datetime.now() # 格式化时间为 年-月-日 时:分:秒 的格式 formatted_now = now.strftime("%Y-%m-%d %H:%M:%S") # 假设这里记录失败原因到日志或数据库 print(f"Time: {formatted_now}, ID: {id}, 时间戳: {timestamp}") # 实际应用中应使用更专业的日志记录方式 return { "code": 0, "msg": "ok", "data": {} }