Запрос к LINQ
Метод: api/queries/get
Запрос
После авторизации отправляется запрос непосредственно к LINQ, используя ключ источника (DataSourceKey):
POST http://localhost/api/queries/get { DataSourceKey: "my_query_1", Parameters: { A: 123, B: "321" }, PageSize: 20 }
Или Id LINQ-запроса (DataSourceId):
POST http://localhost/api/queries/get { DataSourceId: "54d198c3-bbd9-4812-9143-76c632a80e44", Parameters: { A: 123, B: "321" }, PageSize: 20 }
Параметры:
Parameters- передаваемые в LINQ-запрос параметры (необязательное);PageSize- максимальное количество первых по порядку возвращаемых из запроса записей (необязательное, но если не указано - всегда возвращаются только первые 10 записей из результатов выполнения запроса).
Обращение к данным системы с текстом LINQ-запроса (Text) непосредственно в вызове метода:
POST http://localhost/api/queries/get { Text: 'var a = (long)parameters["A"]; var b = parameters.GetValue<string>("B"); return dataContext.Zadacha_2b33fa_List .Select(z => new { z.Name });', Parameters: { A: 123, B: "321" }, PageSize: 100 }
Ответ
В области ответа появится JSON, содержащий результат LINQ-запроса, представленный в формате JSON:
[ { "Id": "96e78600-66a7-4912-8ddb-1a6ab01c3918", "Name": "Управление идеями" }, { "Id": "9aec681c-268f-4ec9-bd32-4ad69d1085c2", "Name": "На рассмотрении" }, { "Id": "63535df0-9e6d-4dc7-ad81-27d4f7978841", "Name": "В архиве" }, ... ]
Пример вызова метода
Пример вызова в 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") # Запрос выполняется после успешной авторизации # Запрос $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
Пример вызова в Python
В файле Python-скрипта обязательно используйте utf-8 кодировку!
import requests # должна быть выполнена авторизация и cookies сессии сохранены в переменной cookies = session.cookies.get_dict() # при необходимости, указывайте протокол https в строке с реальным адресом домена системы. # после адреса домена может быть указан еще и каталог размещения системы на домене (например, https://domain.example.ru/Master ) DOMAIN = 'http://xxxxx' session = requests.Session() # параметры для обращения к 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()