From 13648890832b36cc678a954f5f3b93a4d0f3079b Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 20 May 2025 12:00:19 +0800 Subject: [PATCH] fix: aggregate resource api --- apps/jumpserver/api/aggregate/proxy.py | 9 ++++++++- apps/jumpserver/api/aggregate/supported.py | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/jumpserver/api/aggregate/proxy.py b/apps/jumpserver/api/aggregate/proxy.py index 7b9cf68f3..af78a2080 100644 --- a/apps/jumpserver/api/aggregate/proxy.py +++ b/apps/jumpserver/api/aggregate/proxy.py @@ -5,6 +5,7 @@ from urllib.parse import urlencode import requests from rest_framework.exceptions import NotFound, APIException from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response from rest_framework.routers import DefaultRouter from rest_framework.views import APIView @@ -63,6 +64,12 @@ class ProxyMixin(APIView): data=body, timeout=10, ) - return resp + content_type = resp.headers.get('Content-Type', '') + if 'application/json' in content_type: + data = resp.json() + else: + data = resp.text # 或者 bytes:resp.content + + return Response(data=data, status=resp.status_code) except requests.RequestException as e: raise APIException(f"Proxy request failed: {str(e)}") diff --git a/apps/jumpserver/api/aggregate/supported.py b/apps/jumpserver/api/aggregate/supported.py index 14e0c2485..2595707fc 100644 --- a/apps/jumpserver/api/aggregate/supported.py +++ b/apps/jumpserver/api/aggregate/supported.py @@ -7,6 +7,8 @@ from rest_framework.response import Response from rest_framework.routers import DefaultRouter from rest_framework.views import APIView +from .utils import get_full_resource_map + router = DefaultRouter() BASE_URL = "http://localhost:8080"