HashCore Docs
API

Работа с Postman

6.3.1 Введение

Postman — популярный инструмент для тестирования API. Прошивка VNISH предоставляет REST API, доступный на каждом майнере. В этом руководстве мы расскажем, как настроить Postman для работы с этим API, начиная с самой первой настройки среды.

6.3.2 Установка

Скачайте и установите десктопное приложение Postman с официального сайта, либо используйте веб-версию Postman в браузере.

6.3.3 Получение и импорт спецификации API

API VNISH описан в формате OpenAPI. Посмотреть и скачать документацию можно прямо на майнере:

  • в веб-интерфейсе прошивки: раздел Тех. поддержка → API;
  • либо открыв в браузере адрес http://<IP_майнера>/docs. Полученный файл спецификации (JSON) используется для импорта в Postman, что избавляет от необходимости создавать все запросы вручную:
  1. В Postman нажмите иконку «Import».
  2. Выберите JSON-спецификацию xminer-api и загрузите.
  3. Postman создаст коллекцию xminer-api, разложив все эндпоинты по папкам.

Важно: Postman группирует запросы не по тегам из спецификации (auth, mining и т.п.), а по первому сегменту URL.

6.3.4 Настройка окружений

В Postman есть два уровня переменных, которые стоит разделять:

  • Global: значения, одинаковые для всех майнеров с прошивкой VNISH.
  • Environment: значения, уникальные для конкретного майнера.

Шаг 1. Глобальная переменная

  1. Откройте вкладку Environments в правой панели. Выберите Globals.
  2. В таблице переменных кликните на строку Add variable.
  3. Создайте переменную:
  • Variable: BASE_PATH
  • Value: /api/v1
  1. Сохраните (Ctrl+S или кнопка сохранения в правом верхнем углу). Это общий базовый путь API, одинаковый для любого майнера на VNISH.

Шаг 2. Окружение для конкретного майнера

  1. На вкладке Environments создайте новое окружение (например, My Miner).
  2. Добавьте переменную:
  • Variable: MINER_IP
  • Value: IP-адрес майнера с указанием протокола, например http://<IP_адрес_майнера>
  1. Также заведите пустую переменную AUTH_TOKEN. Она будет автоматически заполняться после входа.

Как настроить её автоматическое заполнение описано в разделе «Настройка автоматического получения и подстановки bearer-токена».

  1. Сохраните окружение и выберите его активным в выпадающем списке окружений в правом верхнем углу веб-интерфейса Postman — без этого переменные не будут подставляться в запросы.

Шаг 3. Переменная baseUrl в коллекции

При импорте спецификации Postman автоматически создаёт в коллекции переменную baseUrl, на основе которой строится путь ко всем запросам ({{baseUrl}}/unlock, {{baseUrl}}/status и т.д.). По умолчанию она содержит только базовый путь без адреса майнера (/api/v1), поэтому её нужно донастроить.

  1. Откройте коллекцию xminer-api → вкладка Variables.
  2. Найдите строку baseUrl.
  3. В колонке Value замените значение на:
    {{MINER_IP}}{{BASE_PATH}}
    
  4. Сохраните изменения. Теперь baseUrl автоматически собирается из переменной окружения MINER_IP и глобальной переменной BASE_PATH, и итоговый адрес выглядит так: http://<IP-майнера>/api/v1.

При смене майнера или его IP-адреса достаточно поменять значение MINER_IP в соответствующем окружении. Все запросы в коллекции автоматически подхватят новый адрес, без ручного редактирования каждого запроса.

6.3.5 Настройка Postman для автоматического получения и подстановки bearer-токена

Чтобы получить токен через /unlock и настроить Postman так, чтобы он автоматически подставлял этот токен во все последующие запросы, без ручного копирования каждый раз.

Шаг 1. Проверка активного окружения

Убедитесь, что в правом верхнем углу Postman выбрано окружение My Miner.

Шаг 2. Создание запроса unlock

  • Метод POST, URL: {{baseUrl}}/unlock.
  • Вкладка Body > raw > тип JSON: Вставьте приведенный ниже JSON в качестве сообщения:
    {"pw":"пароль_устройства"}
    

Шаг 3. Скрипт автосохранения токена

Скопируйте и вставьте приведенный ниже скрипт во вкладку Scripts > Post-response:

pm.environment.unset('AUTH_TOKEN');

pm.test('Status code is 200', function () {
    pm.response.to.have.status(200);
});

const json = pm.response.json();
pm.environment.set('AUTH_TOKEN', json.token);

Скрипт стирает старое значение AUTH_TOKEN, проверяет, что сервер ответил 200 OK, достаёт поле token из тела ответа и сохраняет его в переменную окружения AUTH_TOKEN.

Шаг 4. Сохранение и отправка запроса

Сохраните и отправьте запрос. Если пароль верный, то придёт ответ 200 OK, и AUTH_TOKEN в окружении My Miner заполнится автоматически (проверить можно в панели переменных запроса).

Шаг 5. Настройка авторизации коллекции

Откройте коллекцию xminer-api → вкладка Authorization → тип Bearer Token → в поле Token впишите {{AUTH_TOKEN}}. Теперь все запросы коллекции, унаследовавшие авторизацию от коллекции, автоматически будут слать нужный заголовок.

Шаг 6. Использование и обновление токена

Пользуйтесь остальными запросами как обычно. Когда сессия истечёт, снова отправьте {{baseUrl}}/unlock, скрипт обновит токен.

6.3.6 Как получить cURL-запрос из Postman

Если при работе с API возникла ошибка, разработчики или служба поддержки могут попросить прислать запрос в виде curl-команды. Получить готовый curl прямо из Postman можно за пару шагов, не переписывая запрос вручную:

  1. Откройте нужный запрос в коллекции.
  2. Справа от кнопки Send нажмите на иконку </> (Code) — она открывает меню с готовым кодом запроса на разных языках.
  3. В выпадающем списке найдите пункт cURL.