Skip to end of metadata
Go to start of metadata

Последовательность действий:

  • сгенерировать нужную библиотеку на базовой страницы API необходимой версии:

    https://[Subdomain].logistpro.su/api/v1/

  • распаковать полученный архив lgp-csharp-client.zip
  • скомпилировать библиотеку, запустив скрипт build.bat (build.sh) или открыв файл Lgp.Api.Client.sln в MS Visual Studio
  • создать новый проект в Visual Studio (например, консольное приложение под .Net Framework 4.5+)

  • добавить в зависимости проекта скомпилированные библиотеки из подпапки /bin
  • заменить содержимое файла Program.cs на следующий код:

Progra,.cs
using System;
using System.Net;
using System.Threading.Tasks;
using Lgp.Api.Client.Api;

namespace Lgp.Api.Test
{
    class Program
    {
        // базовые настройки доступа
        private const string API_BASE_HOST = "https://...";
        private const string API_BASE_URL = API_BASE_HOST + "/api/v1/";
        // API ключ личного кабинета компании
        private const string API_KEY = "...";
        // логин/пароль технического аккаунта с максимальными правами доступа
        private const string LOGIN = "...";
        private const string PASSWORD = "...";

        static async Task Main()
        {
            var conf = Client.Client.Configuration.Default;
            conf.BasePath = API_BASE_URL;
            // передача API ключа в заголовке HTTP запросов
            conf.AddDefaultHeader("X-ApiKey", API_KEY);
            // использования контейнера для передачи куки между запросами
            conf.ApiClient.RestClient.CookieContainer = new CookieContainer();

            // -----
            // 1. тестирование доступа (запрос не требует авторизации, только ключ API в заголовках запроса)
            // -----
            var testApi = new TestApi(conf);
            await testApi.TestPingGetAsync();
            
            // -----
            // 2. авторизация в системе заданным пользователем
            // -----
            var accountApi = new AccountApi(conf);
            await accountApi.AccountLoginPostAsync(new LoginResponseModel(LOGIN, PASSWORD));

            // -----
            // 3. получение списка актуальных запросов
            // -----
            var tenderApi = new TenderApi(conf);
            var tenderListResult = await tenderApi.TenderListGetAsync();
            if (tenderListResult == null) return;

            Console.WriteLine("Найдено запросов: " + tenderListResult.Items?.Count);
        }
    }
}
  • исправить значения констант API_BASE_HOST, API_KEY, LOGIN, PASSWORD
  • запустить приложение


  • No labels