|
@@ -0,0 +1,57 @@
|
|
|
+import requests
|
|
|
+
|
|
|
+
|
|
|
+class NasToolsClient:
|
|
|
+ def __init__(self, base_url, api_key=None):
|
|
|
+ self.base_url = base_url
|
|
|
+ self.api_key = api_key
|
|
|
+ self.token = None
|
|
|
+
|
|
|
+ def login(self, username, password):
|
|
|
+ """登录并获取令牌"""
|
|
|
+ login_url = f"{self.base_url}/user/login"
|
|
|
+ data = {
|
|
|
+ "username": username,
|
|
|
+ "password": password
|
|
|
+ }
|
|
|
+ response = requests.post(login_url, json=data)
|
|
|
+ if response.status_code == 200:
|
|
|
+ self.token = response.json().get("data", {}).get("token")
|
|
|
+ return self.token
|
|
|
+ else:
|
|
|
+ raise Exception("Failed to login:", response.text)
|
|
|
+
|
|
|
+ def get(self, endpoint):
|
|
|
+ """执行带有令牌的 GET 请求"""
|
|
|
+ url = f"{self.base_url}{endpoint}"
|
|
|
+ headers = {
|
|
|
+ "Authorization": f"Bearer {self.token}" if self.token else f"ApiKey {self.api_key}"
|
|
|
+ }
|
|
|
+ response = requests.get(url, headers=headers)
|
|
|
+ if response.status_code == 200:
|
|
|
+ return response.json()
|
|
|
+ else:
|
|
|
+ raise Exception("Failed to get data:", response.text)
|
|
|
+
|
|
|
+ def run_service(self, service_name):
|
|
|
+ """
|
|
|
+ 运行指定的服务
|
|
|
+ """
|
|
|
+ url = f'{self.base_url}/service/run'
|
|
|
+ headers = {
|
|
|
+ "Authorization": f"Bearer {self.token}" if self.token else f"ApiKey {self.api_key}"
|
|
|
+ }
|
|
|
+ payload = {'item': service_name}
|
|
|
+ response = requests.post(url, json=payload, headers=headers)
|
|
|
+ return response.json()
|
|
|
+# # 使用示例
|
|
|
+# base_url = "http://your-nas-tools-address/api/v1"
|
|
|
+# username = "your_username"
|
|
|
+# password = "your_password"
|
|
|
+# api_key = "your_api_key"
|
|
|
+#
|
|
|
+# client = NasToolsClient(base_url, api_key)
|
|
|
+# token = client.login(username, password)
|
|
|
+# print("Token:", token)
|
|
|
+#
|
|
|
+# # 现在可以使用 client.get 方法来调用其他 API
|