from aiohttp import web, ClientSession import json, logging, asyncio logger = logging.getLogger(__name__) def setup_proxy_routes(app, service_manager): async def list_proxies(request): ps = service_manager.get_service("proxy") return web.json_response({"proxies": ps.list_proxies() if ps else []}) async def add_proxy(request): try: data = await request.json() ps = service_manager.get_service("proxy") ok = await ps.register_proxy( path=data.get("path",""), target_url=data.get("target",""), description=data.get("description",""), is_external=data.get("external",False)) return web.json_response({"ok": ok}) except Exception as e: return web.json_response({"ok": False, "error": str(e)}, status=400) async def remove_proxy(request): path = request.match_info.get("path","") ps = service_manager.get_service("proxy") ps.unregister_proxy(path) return web.json_response({"ok": True}) app.router.add_get("/api/proxy", list_proxies) app.router.add_post("/api/proxy", add_proxy) app.router.add_delete("/api/proxy/{path}", remove_proxy) logger.info("🔀 代理路由已注册")