Данное руководство подробно описывает, как с помощью Java взаимодействовать с API платформы Mefree.NET, включая генерацию подписи, создание запросов и обработку ответов от API.
1. Общая информация о правилах подписи
API Mefree.NET использует механизм аутентификации на основе подписи. Подпись создается следующим образом:
1.1 Формирование строки для подписи
Строка для подписи формируется по следующему шаблону:
sign = timestamp + method + requestPath
timestamp: Временная метка в формате UTC (ISO 8601), например, 2024-11-26T12:34:56.789Z.
method: HTTP-метод, например, GET или POST.
requestPath: Путь запроса API (включая параметры), например:
Используйте следующий метод для отправки HTTP-запросов:
importjava.net.HttpURLConnection;importjava.net.URL;importjava.io.OutputStream;importjava.io.InputStream;importjava.util.Scanner;publicclassMefreeApiRequest { /** * Отправка запроса к API Mefree. * * @param method HTTP-метод (GET/POST) * @param requestPath Путь запроса (с параметрами) * @return Ответ API в виде строки * @throwsException В случае ошибки */publicstaticStringsendRequest(String method,String requestPath) throwsException {// Генерация временной метки (UTC)String timestamp =java.time.Instant.now().toString();// Генерация подписиString signature =MefreeSignatureUtil.generateSignature(timestamp, method, requestPath,MefreeConfig.SECRET_KEY);// Формируем полный URLURL url =newURL(MefreeConfig.BASE_URL+ requestPath);// Настраиваем соединениеHttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod(method);connection.setRequestProperty("Content-Type","application/json");connection.setRequestProperty("MF-ACCESS-KEY",MefreeConfig.API_KEY);connection.setRequestProperty("MF-ACCESS-SIGN", signature);connection.setRequestProperty("MF-ACCESS-TIMESTAMP", timestamp);// Отправляем запрос и читаем ответInputStream responseStream =connection.getInputStream();Scanner scanner =newScanner(responseStream).useDelimiter("\\A");returnscanner.hasNext() ?scanner.next() :""; }}
4. Примеры вызовов API
4.1 Получение информации об аккаунте
Endpoint: /api/configHTTP-метод: GET
Пример кода:
publicclassMefreeExample {publicstaticvoidmain(String[] args) {try {// Вызов API для получения информации об аккаунтеString response =MefreeApiRequest.sendRequest("GET","/api/config");System.out.println("Информация об аккаунте:");System.out.println(response); } catch (Exception e) {e.printStackTrace(); } }}
4.2 Создание заказа
Endpoint: /api/order?quantity=65000&target_address=TRON_ADDRESS&period=1HTTP-метод: POST
Пример кода:
publicclassMefreeExample {publicstaticvoidmain(String[] args) {try {// Вызов API для создания заказаString response =MefreeApiRequest.sendRequest("POST","/api/order?quantity=65000&target_address=TRON_ADDRESS&period=1");System.out.println("Заказ успешно создан:");System.out.println(response); } catch (Exception e) {e.printStackTrace(); } }}
Проверьте, что MF-ACCESS-KEY соответствует вашему API-ключу.
Убедитесь, что строка для подписи сформирована в правильном порядке: timestamp + method + requestPath.
Используйте корректный SECRET_KEY.
Убедитесь, что временная метка указана в формате UTC.
5.2 Ошибки параметров (400 Bad Request)
Проверьте правильность пути запроса и параметров.
Убедитесь, что заголовок Content-Type установлен в значение application/json.
5.3 Ограничение частоты запросов (429 Too Many Requests)
API Mefree имеет ограничение на частоту запросов. Избегайте отправки слишком большого количества запросов за короткое время.
Рекомендуется не превышать 2 запроса в секунду.
6. Заключение
В этом руководстве описано, как взаимодействовать с API Mefree.NET с использованием Java. Реализация включает генерацию подписи, выполнение запросов и обработку ответов. Для критически важных операций (например, создание заказа) рекомендуется реализовать механизм повторной попытки. В случае возникновения вопросов обратитесь в службу поддержки Mefree.