Описание Web API (JSON)
Получение LINQ-запросов может выполняться от имени любого пользователя с учетом его прав. Нужно использовать CookieContainer для сохранения cookies и уже с ним делать последующие запросы к API.
LINQ вызывается через стандартный интерфейс Web-API. Для этого, например в .NET, можно использовать класс HttpClient. Тело POST запросов передается в формате JSON в фигурных скобках.
| Метод | Название | Описание | Начиная с версии |
|---|---|---|---|
| api/auth/login | Авторизация | Метод авторизации | 4.00 |
| api/queries/get | Запрос | Запрос непосредственно к LINQ | 4.00 |
Пример вызова LINQ-запроса в PowerShell
$baseAddress = New-Object -TypeName Uri -ArgumentList $urlA2 $cookieContainer = New-Object -TypeName System.Net.CookieContainer $handler = New-Object -TypeName System.Net.Http.HttpClientHandler $handler.CookieContainer = $cookieContainer $client = New-Object -TypeName System.Net.Http.HttpClient -ArgumentList $handler $client.BaseAddress = $baseAddress $encoding = [System.Text.Encoding]::GetEncoding("utf-8") # Авторизация $auth = @{ 'Login' = $login; 'Password' = $password) } | ConvertTo-Json $authResponse = $client.PostAsync( [string]::Join('/', $urlA2, "api/auth/login"), (New-Object -TypeName System.Net.Http.StringContent -ArgumentList $auth, $encoding,"application/json")) # Запрос $query = @{ 'DataSourceId' = $DataSourceId 'PageSize' = 1000 } | ConvertTo-Json $queryResponse = $client.PostAsync( [string]::Join('/', $urlA2, "api/queries/get"), (New-Object -TypeName System.Net.Http.StringContent -ArgumentList $query, $encoding,"application/json")) $queryResponseResult = $queryResponse.Result.Content.ReadAsStringAsync() # Результат Linq запроса $result = $queryResponseResult.Result | ConvertFrom-Json
Пример вызова LINQ-запроса в Python
В файле Python-скрипта обязательно используйте utf-8 кодировку!
import requests # укажите свои параметры авторизации и адрес размещения системы LOGIN = 'xxxxx' PASSWORD = 'xxxxx' # используйте либо логин-пароль, либо токен # TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # при необходимости, указывайте протокол https в строке с реальным адресом домена системы. # после адреса домена может быть указан еще и каталог размещения системы на домене (например, https://domain.example.ru/Master ) DOMAIN = 'http://xxxxx' session = requests.Session() # авторизация response = session.post( url = DOMAIN + '/api/auth/login', json = { 'Login': LOGIN, 'Password': PASSWORD, }, ) # либо авторизуйтесь, используя токен доступа # response = session.post( # url = DOMAIN + '/api/auth/login', # json = { # 'tokenValue': TOKEN, # }, # ) # сохранение полученных после авторизации cookies для последующих запросов cookies = session.cookies.get_dict() # параметры для обращения к LINQ-запросу (может быть больше, см. выше) LINQ = { 'DataSourceId': "6b7c0388-a249-4d39-9cb6-xxxxxxxxxxx", # id LINQ-запроса в системе ADVANTA 'PageSize': 100, # максимальное количество возвращаемых записей } # получение данных из LINQ-запроса response = session.post( url = DOMAIN + '/api/queries/get', cookies = cookies, json = LINQ, ) data = response.json()