Для выполнения запроса к API v2 используется метод request_to_api_v2:
request_to_api_v2(url: str,
method: str,
headers: dict,
cookies: Optional[dict] = None,
data: Optional[Union[dict, List[Tuple], bytes]] = None,
json: Optional[dict] = None,
)
В методе используются следующие аргументы:
| Аргумент | Описание |
|---|---|
| url: (str) | URL-адрес стенда Polymatica Analytics. В адресе необходимо указать эндпоинт соответствующего запроса api/v2. Например, host.ru/api/v2/logs или host.ru/api/v2/info/dump. |
| method: (str) | HTTP-метод (например, "GET", "PATCH", "POST", "PUT", "DELETE"). |
| headers: (dict) | Заголовки HTTP-запроса. |
| cookies: (dict) | Куки запроса; по умолчанию { "session": self.session_id }. Необязательный аргумент. |
| data: (Union[dict, List[Tuple], bytes]) | Тело запроса. Необязательный аргумент. Не передается, если указан аргумент json. |
| json: (dict) | Тело запроса в формате JSON. Необязательный аргумент. Не передается, если указан аргумент data. |
Пример использования метода:
session.request_to_api_v2(
url="https://<example_host.ru>/api/v2/<example_endpoint>",
method="GET",
headers={
"Content-Type": "application/json",
"Accept": "*/*"
}
)
или
session.request_to_api_v2(
url="https://<example_host.ru>/api/v2/<example_endpoint>",
method="GET",
cookies={"session": "0f7f77133dd41ef484eb295c62fc99643497dbaaef961cea6f0384121c567780669e98157bf615e30f1bbc545253679e7ac598afb2c204240ec440cbdf50001e"}
headers={
"Content-Type": "application/json",
"Accept": "*/*"
}
)
или
session.request_to_api_v2(url="https://<example_host.ru>/api/v2/favorites",
method="PUT",
headers={
"Content-Type": "application/json",
"Accept": "*/*"
},
json={"resources":[
"f0cc9a51",
"73957620"
]
}
)
В результате использования метода возвращается объект Response библиотеки requests.
Пример ответа:
<Response [200]>
Статусы, которые могут содержаться в ответе:
200 — запрос выполнен успешно;
204 — запрос выполнен успешно;
401 — запрос от неавторизованного пользователя;
400 — ошибочный запрос;
403 — отсутствуют права на выполнение запроса;
404 — ресурс не найден;
500 — ошибка на стороне сервера.
Для извлечения текста ответа необходимо использовать следующий код:
response = session.request_to_api_v2(
url=url, method="GET", headers=headers
)
print(f'response.text = {response.text}')
Пример обработанного ответа:
response.text = {
"results": [
{
"id": "4dde1856",
"name": "Сценарий 1",
"owner": "TestAdmin",
"created_at": 1758714305701213,
"updated_at": 1758714313429797,
"all_cubes_available": true,
"shared": true,
"favorite": false,
"path": []
},
{
"id": "d05dd838",
"name": "Сценарий 2",
"owner": "TestAdmin",
"created_at": 1750223516208100,
"updated_at": 1750223528924134,
"all_cubes_available": true,
"shared": false,
"favorite": false,
"path": []
}
]
}