Compare commits
2 Commits
84418b4832
...
014f42e67d
Author | SHA1 | Date |
---|---|---|
fanshuai | 014f42e67d | |
fanshuai | 44e930546d |
|
@ -8,6 +8,7 @@ from django.views.static import serve
|
|||
from rest_framework import routers
|
||||
|
||||
from users import views, api
|
||||
from .views import forward_to_getToken, forward_to_getDataset, forward_to_exportDataset
|
||||
|
||||
router = routers.DefaultRouter()
|
||||
router.register(r'users', api.UserAPI, basename='user')
|
||||
|
@ -30,4 +31,8 @@ urlpatterns = [
|
|||
path('api/current-user/token', api.UserGetTokenAPI.as_view(), name='current-user-token'),
|
||||
|
||||
path('api/current-user/whoami', api.UserWhoAmIAPI.as_view(), name='current-user-whoami'),
|
||||
|
||||
path('forward/getToken/', forward_to_getToken, name='forward_to_getToken'),
|
||||
path('forward/getDateset/', forward_to_getDataset, name='forward_to_getDateset'),
|
||||
path('forward/exportDateset/', forward_to_exportDataset, name='forward_to_exportDateset'),
|
||||
]
|
||||
|
|
|
@ -14,8 +14,52 @@ from core.utils.common import load_func
|
|||
from users.functions import proceed_registration
|
||||
from organizations.models import Organization
|
||||
from organizations.forms import OrganizationSignupForm
|
||||
import requests
|
||||
from django.http import JsonResponse
|
||||
import json
|
||||
|
||||
def forward_request_to_target(request, target_url):
|
||||
"""
|
||||
处理来自前端的请求并将其转发到目标URL。
|
||||
Args:
|
||||
request: 前端请求对象
|
||||
target_url: 目标URL
|
||||
|
||||
Returns:
|
||||
JsonResponse: 包含目标接口的响应数据的JSON响应
|
||||
"""
|
||||
try:
|
||||
# 获取请求方法和请求体
|
||||
method = request.method
|
||||
payload = request.body
|
||||
# 设置Authorization头部(如果存在)
|
||||
headers = {}
|
||||
if 'Authorization' in request.headers:
|
||||
headers['Authorization'] = request.headers['Authorization']
|
||||
headers['Content-Type'] = request.headers['Content-Type']
|
||||
# 转发请求到目标URL
|
||||
query_params = request.GET
|
||||
target_url_with_params = f"{target_url}?{'&'.join([f'{key}={value}' for key, value in query_params.items()])}"
|
||||
print(target_url_with_params)
|
||||
response = requests.request(method, target_url_with_params, headers=headers, data=payload)
|
||||
data = response.text # 获取目标接口的响应数据
|
||||
employee_data = json.loads(data)
|
||||
return JsonResponse(employee_data,status=response.status_code)
|
||||
except requests.RequestException:
|
||||
return JsonResponse({'error': 'Failed to forward request.'}, status=500)
|
||||
|
||||
# 示例用法
|
||||
def forward_to_getToken(request):
|
||||
target_url = "http://172.20.32.150:8082/auth/loginByKey"
|
||||
return forward_request_to_target(request, target_url)
|
||||
|
||||
def forward_to_getDataset(request):
|
||||
target_url = "http://172.20.32.150:8082/mmp/dataset"
|
||||
return forward_request_to_target(request, target_url)
|
||||
|
||||
def forward_to_exportDataset(request):
|
||||
target_url = "http://172.20.32.150:8082/mmp/datasetVersion/addDatasetVersionsFromLabel"
|
||||
return forward_request_to_target(request, target_url)
|
||||
logger = logging.getLogger()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue