Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagec#
titleProgra,.cs
linenumberstrue
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);
            var testResult = await testApi.TestPingGetAsync();
            if
(testResult != null)             {
                Console.WriteLine("Error: " + testResult.Message);
                return;
            }

            // -----
            // 2. авторизация в системе заданным пользователем
            // -----
            var accountApi = new AccountApi(conf);
            var loginResult = await accountApi.AccountLoginPostAsync(new LoginResponseModel(LOGIN, PASSWORD);
            if (loginResult != null)
            {
                Console.WriteLine("Error: " + loginResult.Message);

               return;
            }

            // -----
            // 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
  • запустить приложение