优化api_adapter.py
This commit is contained in:
parent
acf87603f4
commit
7665619e01
@ -20,9 +20,8 @@ class ApiAdapter:
|
|||||||
self.api_url = Config.jingrow_server_url
|
self.api_url = Config.jingrow_server_url
|
||||||
self.api_key = Config.jingrow_api_key
|
self.api_key = Config.jingrow_api_key
|
||||||
self.api_secret = Config.jingrow_api_secret
|
self.api_secret = Config.jingrow_api_secret
|
||||||
self.session_cookie = None # Session cookie 由系统自动管理,不再从配置中读取
|
|
||||||
|
|
||||||
def _get_headers(self):
|
def _get_headers(self, session_cookie: Optional[str] = None):
|
||||||
"""获取请求头"""
|
"""获取请求头"""
|
||||||
headers = {
|
headers = {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
@ -33,8 +32,8 @@ class ApiAdapter:
|
|||||||
if self.api_key and self.api_secret:
|
if self.api_key and self.api_secret:
|
||||||
headers['Authorization'] = f'token {self.api_key}:{self.api_secret}'
|
headers['Authorization'] = f'token {self.api_key}:{self.api_secret}'
|
||||||
|
|
||||||
if self.session_cookie:
|
if session_cookie:
|
||||||
headers['Cookie'] = f'sid={self.session_cookie}'
|
headers['Cookie'] = f'sid={session_cookie}'
|
||||||
|
|
||||||
return headers
|
return headers
|
||||||
|
|
||||||
@ -65,13 +64,12 @@ class ApiAdapter:
|
|||||||
def get_logged_user(self, session_cookie: Optional[str] = None) -> Optional[str]:
|
def get_logged_user(self, session_cookie: Optional[str] = None) -> Optional[str]:
|
||||||
try:
|
try:
|
||||||
api_url = f"{self.api_url}/api/action/jingrow.auth.get_logged_user"
|
api_url = f"{self.api_url}/api/action/jingrow.auth.get_logged_user"
|
||||||
cookie = session_cookie or self.session_cookie
|
if not session_cookie:
|
||||||
if not cookie:
|
|
||||||
return None
|
return None
|
||||||
headers = {
|
headers = {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
"Accept": "application/json",
|
"Accept": "application/json",
|
||||||
"Cookie": f"sid={cookie}"
|
"Cookie": f"sid={session_cookie}"
|
||||||
}
|
}
|
||||||
resp = requests.get(api_url, headers=headers, timeout=8)
|
resp = requests.get(api_url, headers=headers, timeout=8)
|
||||||
if resp.status_code == 200:
|
if resp.status_code == 200:
|
||||||
@ -145,7 +143,7 @@ class ApiAdapter:
|
|||||||
def get_agent_detail(self, name: str, session_cookie: Optional[str] = None) -> Optional[Dict[str, Any]]:
|
def get_agent_detail(self, name: str, session_cookie: Optional[str] = None) -> Optional[Dict[str, Any]]:
|
||||||
try:
|
try:
|
||||||
api_url = f"{self.api_url}/api/action/jingrow.ai.utils.jlocal.get_local_ai_agent_detail"
|
api_url = f"{self.api_url}/api/action/jingrow.ai.utils.jlocal.get_local_ai_agent_detail"
|
||||||
headers = self._get_headers()
|
headers = self._get_headers(session_cookie=session_cookie)
|
||||||
payload = {"name": name}
|
payload = {"name": name}
|
||||||
response = requests.post(api_url, headers=headers, json=payload, timeout=15)
|
response = requests.post(api_url, headers=headers, json=payload, timeout=15)
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
@ -163,7 +161,7 @@ class ApiAdapter:
|
|||||||
def get_pg(self, pagetype: str, name: str, session_cookie: Optional[str] = None) -> Dict[str, Any]:
|
def get_pg(self, pagetype: str, name: str, session_cookie: Optional[str] = None) -> Dict[str, Any]:
|
||||||
try:
|
try:
|
||||||
api_url = f"{self.api_url}/api/data/{pagetype}/{name}"
|
api_url = f"{self.api_url}/api/data/{pagetype}/{name}"
|
||||||
headers = self._get_headers()
|
headers = self._get_headers(session_cookie=session_cookie)
|
||||||
response = requests.get(api_url, headers=headers, timeout=15)
|
response = requests.get(api_url, headers=headers, timeout=15)
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
data = response.json()
|
data = response.json()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user