Table of Contents

Получение объекта по расположению

Пример показывает, как получить объект структуры по строке расположения средствами клиентской библиотеки Ascon.Polynom.Web.Api.Client. Проект — Samples.WebApi.GetObjectByLocation.

Требования

  • .NET 8.
  • Запущенный web-сервер ПОЛИНОМ:MDM с доступным хранилищем.
  • Пакет Ascon.Polynom.Web.Api.Client из локального фида (подключается автоматически).

Алгоритм

  1. Авторизоваться в web-API.
  2. Задать строку расположения объекта.
  3. Получить объект по расположению.
  4. Обработать и сохранить результат.
  5. Выйти из сессии.

Авторизация

Авторизация выполняется хелпером 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.