59 lines
931 B
Python
59 lines
931 B
Python
from dataclasses import dataclass
|
|
import requests
|
|
import json
|
|
from typing import List
|
|
#region Base
|
|
|
|
|
|
__ctx = {"apibase":""}
|
|
|
|
|
|
def SetAPIBase(s: str):
|
|
__ctx["apibase"] = s
|
|
|
|
|
|
def GetAPIBase() -> str:
|
|
return __ctx["apibase"]
|
|
|
|
|
|
def SetCookie(s: str):
|
|
__ctx["cookie"] = s
|
|
|
|
|
|
def GetCookie() -> str:
|
|
return __ctx["cookie"]
|
|
|
|
|
|
def InvokeTxt(path: str, method: str, body) -> str:
|
|
headers = {"Content-type": "application/json", "Cookie": "dc="+GetCookie()}
|
|
fpath = GetAPIBase() + path
|
|
r = requests.request(method, fpath, json=body, headers=headers)
|
|
return r.text
|
|
|
|
|
|
def InvokeJSON(path: str, method: str, body) -> dict:
|
|
d = body.__dict__
|
|
return json.loads(InvokeTxt(path, method, d))
|
|
|
|
#endregion
|
|
|
|
#region Types
|
|
@ dataclass
|
|
class SomeReq :
|
|
fielda: str
|
|
|
|
|
|
@ dataclass
|
|
class SomeRes :
|
|
msg: str
|
|
|
|
|
|
#endregion
|
|
|
|
#region Methods
|
|
def Dosome(req:SomeReq)-> SomeRes:
|
|
return InvokeJSON("/some","POST",req)
|
|
|
|
|
|
#endregion
|