Страница 1 из 3

Работа с API на C#

Добавлено: 26 окт 2019, 18:28
Дмитрий
Нужен пример, как с API Руководителя работать из C#.

У меня следующий код на C# работает с API-запросами:

using (HttpRequestMessage httpRequest = new HttpRequestMessage(method, URI))
{
httpRequest.Content = new StringContent(content, Encoding.UTF8, "application/json"/*ContentType*/);
try
{
using (HttpResponseMessage httpResponse = await httpClient.SendAsync(httpRequest))
{
http_result.Response = await httpResponse.Content.ReadAsStringAsync();
http_result.StatusCode = (int)httpResponse.StatusCode;
}
}
catch (Exception ex)
{
http_result.Response = ex.ToString();
http_result.StatusCode = -1;
}
}

Я пробую в переменной content передать запрос. Вот пример, как я это делаю:

content = "{\"key\":\"...\", \"username\":\"...\", \"password\":\"...\", \"limit\":\"10\", \"action\":\"select\", \"entity_id\":\"59\", \"filters\": {\"id\":\"1\"}}";

Но в результате запрос не отрабатывается. Руководитель не видит, что заданы параметры, которые я определяю в переменной content.

Хочу понять, как из C# делать API-запросы.

Re: Работа с API на C#

Добавлено: 26 окт 2019, 19:10
support
Вы передаете json, а нужно GET или POST

Re: Работа с API на C#

Добавлено: 26 окт 2019, 19:20
Дмитрий
А вы с json не работаете?

Re: Работа с API на C#

Добавлено: 26 окт 2019, 20:28
support
Пока нет.

Re: Работа с API на C#

Добавлено: 26 окт 2019, 20:43
Дмитрий
А пример, как такой запрос сделать на C# нет возможности привести? Пока сам не могу разобраться, как нужный мне запрос конвертировать в одну строку POST-запроса

Re: Работа с API на C#

Добавлено: 26 окт 2019, 20:48
support
К сожалению C# не знаю, по этому не помогу.

Re: Работа с API на C#

Добавлено: 26 окт 2019, 20:54
Дмитрий
Я правильно понимаю, что в конечном счете запрос должен преобразовываться к следующему виду:

https://localhost/api/rest.php?key=...& ... ers[id]="1"

Но у меня такой запрос выдает все сущности из категории 59. А мне нужна только одна сущность с id = 1. Если я пойму, как формировать строку https-запроса, то я это без проблем потом реализую на C#. Я пока не могу понять, как мне в этой строке указывать параметры фильтра. Не сможете подсказать?

Re: Работа с API на C#

Добавлено: 27 окт 2019, 08:15
support
На данный момент нет фильтра по ID. Он появится в 2.6.

Re: Работа с API на C#

Добавлено: 27 окт 2019, 11:52
Дмитрий
Попробую описать свою задачу в общем виде, и хотелось бы услышать имеет ли она решение в рамках текущей версии, или нужно ждать следующей.

Есть база контрагентов и подчиненная ей база контактов. Контакт содержит информацию о номере телефона и ФИО его владельца. Мне нужно по номеру телефона найти контакт, а затем открыть карточку контрагента, содержащего найденный контакт. Сейчас почему-то поле [parent_item_id] в найденном результате отображается как пустое, и я не могу понять, как мне через API от карточки контакта перейти к родительской карточке контрагента.

Re: Работа с API на C#

Добавлено: 27 окт 2019, 15:49
support
Да, сейчас parent_item_id не выбирается. Добавил в план для 2.6