Получение объекта по расположению
Пример показывает, как получить объект структуры по строке расположения средствами клиентской
библиотеки Ascon.Polynom.Web.Api.Client. Проект — Samples.WebApi.GetObjectByLocation.
Требования
- .NET 8.
- Запущенный web-сервер ПОЛИНОМ:MDM с доступным хранилищем.
- Пакет
Ascon.Polynom.Web.Api.Clientиз локального фида (подключается автоматически).
Алгоритм
- Авторизоваться в web-API.
- Задать строку расположения объекта.
- Получить объект по расположению.
- Обработать и сохранить результат.
- Выйти из сессии.
Авторизация
Авторизация выполняется хелпером PolynomClientSession поверх
AuthorizationService.
Подробно — в разделе
Авторизация в C# через клиентскую библиотеку.
Реализация
Объект по расположению возвращает метод GetByLocation сервиса
ElementApiClient.
using Ascon.Polynom.Web.Api.Client.Json;
using Samples.WebApi.Common.Services;
using var session = await PolynomClientSession.CreateAsync(cancellationToken);
// Строка расположения объекта, скопированная из клиента ПОЛИНОМ:MDM.
var location = "<location ... />";
var element = await session.Factory.CreateElementApiClient().GetByLocation(location, cancellationToken);
// Сохранение описания объекта в файл JSON.
var json = JsonSerializer.Serialize(element,
new JsonSerializerOptions(PolynomJsonOptions.Options) { WriteIndented = true });
await File.WriteAllTextAsync("element.json", json, cancellationToken);
await session.SignOutAsync(cancellationToken);
Используемые методы библиотеки
| Сервис | Метод | Назначение |
|---|---|---|
ElementApiClient |
GetByLocation(string, CancellationToken) |
Объект структуры по строке расположения |
Результат
Переменная element содержит описание объекта; оно сохраняется в файл JSON.
Возможные ошибки
- Некорректная строка расположения — ответ
400 Bad Request; проверьте, что строка скопирована целиком. - Объект не найден — ответ
404 Not Found. - Сессия истекла — библиотека обновит токен и повторит запрос; при неудаче требуется повторный вход.
Ссылки
Пример-приложение в составе SDK: SDK/Web/Samples/Server/Samples.WebApi.GetObjectByLocation.