Demands 3.3.5

Demands — .NET клиент для API

Библиотека Demands предоставляет типизированный клиент для взаимодействия с API Demands. Целевая платформа — .NET Standard 2.0, что обеспечивает совместимость с .NET Framework 4.6.1+ и .NET Core 2.0+.

Установка

dotnet add package Demands

Или через Package Manager Console:

Install-Package Demands

Текущая версия пакета: 3.3.3.

Быстрый старт

Вариант 1 — прямое создание клиента

Используйте статический метод DemandsApi.Build, если вы не используете DI-контейнер (например, в консольных приложениях или скриптах):

using Demands;
using Demands.Contracts;

IDemandsApiClient client = DemandsApi.Build(options =>
{
    options.ConnectToHost("https://demands.example.com/");
    options.SetApplication("MyApp");
    options.SetAuthToken("my-auth-token");
});

IDemandsApiContext context = client.GetContext();
var profiles = await context.Profiles.GetProfiles();

Вариант 2 — регистрация через DI (ASP.NET Core / Generic Host)

Рекомендуемый способ для серверных приложений. Метод расширения AddDemandsApi регистрирует IDemandsApiClient и все зависимости в IServiceCollection:

using Demands.Common.Extensions;

services.AddDemandsApi(options =>
{
    options.ConnectToHost("https://demands.example.com/");
    options.SetApplication("MyApp");
    options.SetAuthToken("my-auth-token");
});

После регистрации IDemandsApiClient доступен через конструктор:

public class MyService
{
    private readonly IDemandsApiClient _client;

    public MyService(IDemandsApiClient client)
    {
        _client = client;
    }

    public async Task DoWork()
    {
        var context = _client.GetContext();
        var profiles = await context.Profiles.GetProfiles();
        context.SetProfile(profiles.First());
        var docs = await context.Documents.Search(new DocumentSearchOptionsApiDTO
        {
            ListType = DocumentListType.My
        });
    }
}

Обязательные параметры

Для работы клиента необходимо указать минимум три параметра:

Параметр Метод билдера Описание
Адрес сервера ConnectToHost(url) Базовый URL сервера Demands API
Приложение SetApplication(name) Имя приложения-потребителя (передаётся в заголовке X-ApplicationName)
Токен SetAuthToken(token) Bearer-токен для авторизации запросов

Конфигурация

Все параметры задаются через DemandsApiOptionsBuilder:

Метод Описание
ConnectToHost(url) Указать адрес сервера API
ConnectToButler(url) Указать адрес сервера Butler
ConnectToLocalhost(port) Подключение к https://localhost:{port}/
SetApplication(name) Имя приложения-потребителя
SetAuthToken(token) Токен аутентификации (Bearer)
UseHttpClient() Использовать HttpClient с cookies (Desktop-сценарий)
UseAlternativeHttpClient(timeout) Альтернативный HttpClient с указанным таймаутом

Документация

Лицензия

Проприетарная лицензия. Подробности уточняйте у владельца репозитория.

Showing the top 20 packages that depend on Demands.

Packages Downloads
Demands.Ussc
Package Description
41
Demands.Ussc
Package Description
40
Demands.Ussc
Package Description
36
Demands.Novator
Package Description
31
Demands.Ussc
Package Description
29
Demands.Ussc
Package Description
19

Version Downloads Last updated
3.3.7 11 03/13/2026
3.3.6 5 03/03/2026
3.3.5 4 02/19/2026
3.3.4 6 02/17/2026
3.3.3 26 01/13/2026
3.3.3-preview4068-01 6 01/13/2026
3.3.3-pre-doc4068-02 7 01/13/2026
3.3.3-pre-doc4068-01 6 01/13/2026
3.3.2 67 10/30/2025
3.2.0 26 05/09/2025
3.1.0 20 05/09/2025
3.0.1 20 05/09/2025
3.0.1-pre2 21 05/09/2025
3.0.1-pre1 19 05/09/2025
3.0.0 20 05/09/2025
2.0.5-pre9 19 05/09/2025
2.0.5-pre8 20 05/09/2025
2.0.5-pre7 19 05/09/2025
2.0.5-pre6 20 05/09/2025
2.0.5-pre12 37 05/09/2025
2.0.5-pre11 21 05/09/2025
2.0.5-pre10 23 05/09/2025