-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerate.py
50 lines (43 loc) · 1.84 KB
/
generate.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import json
from pathlib import Path
import requests
from funapi.convert import convert_openapi_v3
from funapi.generate import generate_api
from openapi_python_client import MetaType
openapi_filepath_ori = "openapi-ori.json"
openapi_filepath_v3 = "openapi-v3.json"
def load_openapi_ori():
url = "https://www.scidb.cn/open-api/v2/api-docs"
headers = {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
"cache-control": "max-age=0",
"priority": "u=0, i",
"referer": "https://www.scidb.cn/open-api/swagger-ui.html",
"sec-ch-ua": '"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"',
"sec-ch-ua-mobile": "?1",
"sec-ch-ua-platform": '"Android"',
"sec-fetch-dest": "document",
"sec-fetch-mode": "navigate",
"sec-fetch-site": "same-origin",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36",
}
cookies = {
"acw_tc": "3adc341c17331953480173868ed3c0ca24d7a278bcc0c3dafa5e1618a7",
"cdn_sec_tc": "3adc341c17331953480173868ed3c0ca24d7a278bcc0c3dafa5e1618a7",
"lang": "zh",
"traceId": "cf6c6aa6-3acd-4840-96b7-11cc7ab0b561",
}
response = requests.get(url, headers=headers, cookies=cookies)
with open(openapi_filepath_ori, "w", encoding="utf-8") as f:
f.write(json.dumps(response.json(), indent=4, ensure_ascii=False))
load_openapi_ori()
convert_openapi_v3()
generate_api(
path=Path(openapi_filepath_v3),
output_path=Path("./src/sciencedb"),
meta=MetaType.NONE,
overwrite=True,
)