# Примеры использования API
На этой странице представлены примеры кода для взаимодействия с API NETTS на различных языках программирования.
# Примеры на Python
# Получение цен на энергию
#!/usr/bin/env python3
import sys
import json
import requests
from datetime import datetime
# Конфигурация
url = "https://netts.io/apiv2/prices"
api_key = "ваш_api_ключ" # Замените на ваш реальный API-ключ
headers = {
"Content-Type": "application/json",
"X-API-KEY": api_key
}
try:
print(f"[{datetime.now()}] Отправка запроса цен на {url}")
# Отправляем GET-запрос к API цен
response = requests.get(url, headers=headers, timeout=15)
# Обрабатываем JSON-ответ
if response.status_code == 200:
data = response.json()
# Выводим краткую информацию
print("\nИнформация о ценах:")
print(f"Статус: {data.get('status')}")
print(f"Текущее время UTC: {data.get('current_utc_time')}")
print(f"Активный период: {data.get('active_period')}")
print(f"Цена хоста: {data.get('host_price')} TRX")
# Выводим информацию о периодах
print("\nПериоды цен:")
for period in data.get('periods', []):
is_active = period.get('is_active', False)
active_marker = " *АКТИВЕН*" if is_active else ""
print(f"\n{period.get('label')}{active_marker}:")
print(f" Время: {period.get('period')}")
prices = period.get('prices', {})
# Меньше 200k энергии
less_than_200k = prices.get('less_than_200k', {})
print(f" Меньше 200k: {less_than_200k.get('price_sun')} sun")
# Ровно 131k энергии
equal_131k = prices.get('equal_131k', {})
print(f" Ровно 131k: {equal_131k.get('price_sun')} sun")
# Больше 200k энергии
more_than_200k = prices.get('more_than_200k', {})
print(f" Больше 200k: {more_than_200k.get('price_sun')} sun")
else:
print(f"Ошибка: {response.status_code}")
print(response.text)
except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {str(e)}")
except Exception as e:
print(f"Непредвиденная ошибка: {str(e)}")
# Получение информации о пользователе
#!/usr/bin/env python3
import sys
import json
import requests
from datetime import datetime
# Конфигурация
url = "https://netts.io/apiv2/userinfo"
api_key = "ваш_api_ключ" # Замените на ваш реальный API-ключ
headers = {
"Content-Type": "application/json",
"X-API-KEY": api_key
}
try:
print(f"[{datetime.now()}] Запрос информации о пользователе с {url}")
# Отправляем GET-запрос к API информации о пользователе
response = requests.get(url, headers=headers, timeout=15)
# Обрабатываем JSON-ответ
if response.status_code == 200:
data = response.json()
# Выводим информацию о пользователе
print("\nИнформация о пользователе:")
print(f"Статус: {data.get('status')}")
print(f"Временная метка: {data.get('timestamp')}")
print(f"ID пользователя: {data.get('user_id')}")
user_info = data.get('user_info', {})
print(f"Email: {user_info.get('email', 'Н/Д')}")
print(f"Имя: {user_info.get('name', 'Н/Д')}")
# Выводим статистику
stats = data.get('stats', {})
print("\nСтатистика пользователя:")
print(f"Баланс: {stats.get('balance', 0)} TRX")
print(f"Всего делегирований: {stats.get('total_delegations', 0)}")
print(f"Всего делегировано энергии: {stats.get('total_energy_delegated', 0)}")
print(f"Всего потрачено TRX: {stats.get('total_trx_spent', 0)} TRX")
print(f"Всего депозитов: {stats.get('total_deposit', 0)} TRX")
print(f"Средний курс (Sun/Energy): {stats.get('avg_rate_sun_energy', 0)}")
print(f"Экономия с Netts: {stats.get('save_by_netts_percent', 0)}%")
print(f"Экономия в долларах: ${stats.get('save_in_dollars', 0)}")
# Выводим информацию о сети
network_info = data.get('network_info', {})
print("\nИнформация о сети:")
print(f"Цена TRX: ${network_info.get('trx_price', 0)}")
print(f"Комиссия сети за энергию: {network_info.get('network_energy_fee', 0)}")
else:
print(f"Ошибка: {response.status_code}")
print(response.text)
except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {str(e)}")
except Exception as e:
print(f"Непредвиденная ошибка: {str(e)}")
# Примеры на JavaScript
# Получение цен на энергию
// Использование fetch API (современные браузеры и Node.js с node-fetch)
const fetchPrices = async () => {
const url = 'https://netts.io/apiv2/prices';
const apiKey = 'ваш_api_ключ'; // Замените на ваш реальный API-ключ
try {
const response = await fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': apiKey
}
});
if (!response.ok) {
throw new Error(`Ошибка HTTP! Статус: ${response.status}`);
}
const data = await response.json();
// Выводим краткую информацию
console.log('Информация о ценах:');
console.log(`Статус: ${data.status}`);
console.log(`Текущее время UTC: ${data.current_utc_time}`);
console.log(`Активный период: ${data.active_period}`);
console.log(`Цена хоста: ${data.host_price} TRX`);
// Выводим информацию о периодах
console.log('\nПериоды цен:');
data.periods.forEach(period => {
const activeMarker = period.is_active ? ' *АКТИВЕН*' : '';
console.log(`\n${period.label}${activeMarker}:`);
console.log(` Время: ${period.period}`);
// Выводим цены для разных объемов энергии
console.log(` Меньше 200k: ${period.prices.less_than_200k.price_sun} sun`);
console.log(` Ровно 131k: ${period.prices.equal_131k.price_sun} sun`);
console.log(` Больше 200k: ${period.prices.more_than_200k.price_sun} sun`);
});
return data;
} catch (error) {
console.error('Ошибка при получении цен:', error);
throw error;
}
};
// Вызываем функцию
fetchPrices().catch(console.error);
# Получение информации о пользователе
// Использование fetch API (современные браузеры и Node.js с node-fetch)
const fetchUserInfo = async () => {
const url = 'https://netts.io/apiv2/userinfo';
const apiKey = 'ваш_api_ключ'; // Замените на ваш реальный API-ключ
try {
const response = await fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': apiKey
}
});
if (!response.ok) {
throw new Error(`Ошибка HTTP! Статус: ${response.status}`);
}
const data = await response.json();
// Выводим информацию о пользователе
console.log('Информация о пользователе:');
console.log(`Статус: ${data.status}`);
console.log(`Временная метка: ${data.timestamp}`);
console.log(`ID пользователя: ${data.user_id}`);
console.log(`Email: ${data.user_info.email || 'Н/Д'}`);
console.log(`Имя: ${data.user_info.name || 'Н/Д'}`);
// Выводим статистику
console.log('\nСтатистика пользователя:');
console.log(`Баланс: ${data.stats.balance} TRX`);
console.log(`Всего делегирований: ${data.stats.total_delegations}`);
console.log(`Всего делегировано энергии: ${data.stats.total_energy_delegated}`);
console.log(`Всего потрачено TRX: ${data.stats.total_trx_spent} TRX`);
console.log(`Всего депозитов: ${data.stats.total_deposit} TRX`);
console.log(`Средний курс (Sun/Energy): ${data.stats.avg_rate_sun_energy}`);
console.log(`Экономия с Netts: ${data.stats.save_by_netts_percent}%`);
console.log(`Экономия в долларах: $${data.stats.save_in_dollars}`);
// Выводим информацию о сети
console.log('\nИнформация о сети:');
console.log(`Цена TRX: $${data.network_info.trx_price}`);
console.log(`Комиссия сети за энергию: ${data.network_info.network_energy_fee}`);
return data;
} catch (error) {
console.error('Ошибка при получении информации о пользователе:', error);
throw error;
}
};
// Вызываем функцию
fetchUserInfo().catch(console.error);
# Примеры на PHP
# Получение цен на энергию
<?php
// Конфигурация
$url = "https://netts.io/apiv2/prices";
$apiKey = "ваш_api_ключ"; // Замените на ваш реальный API-ключ
// Настраиваем cURL
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
"X-API-KEY: $apiKey"
]);
// Выполняем запрос
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// Проверяем на ошибки
if ($httpCode != 200) {
echo "Ошибка: HTTP код $httpCode\n";
echo $response;
exit(1);
}
// Обрабатываем ответ
$data = json_decode($response, true);
// Выводим краткую информацию
echo "Информация о ценах:\n";
echo "Статус: " . $data['status'] . "\n";
echo "Текущее время UTC: " . $data['current_utc_time'] . "\n";
echo "Активный период: " . $data['active_period'] . "\n";
echo "Цена хоста: " . $data['host_price'] . " TRX\n";
// Выводим информацию о периодах
echo "\nПериоды цен:\n";
foreach ($data['periods'] as $period) {
$activeMarker = $period['is_active'] ? ' *АКТИВЕН*' : '';
echo "\n" . $period['label'] . $activeMarker . ":\n";
echo " Время: " . $period['period'] . "\n";
// Выводим цены для разных объемов энергии
echo " Меньше 200k: " . $period['prices']['less_than_200k']['price_sun'] . " sun\n";
echo " Ровно 131k: " . $period['prices']['equal_131k']['price_sun'] . " sun\n";
echo " Больше 200k: " . $period['prices']['more_than_200k']['price_sun'] . " sun\n";
}
?>
# Получение информации о пользователе
<?php
// Конфигурация
$url = "https://netts.io/apiv2/userinfo";
$apiKey = "ваш_api_ключ"; // Замените на ваш реальный API-ключ
// Настраиваем cURL
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
"X-API-KEY: $apiKey"
]);
// Выполняем запрос
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// Проверяем на ошибки
if ($httpCode != 200) {
echo "Ошибка: HTTP код $httpCode\n";
echo $response;
exit(1);
}
// Обрабатываем ответ
$data = json_decode($response, true);
// Выводим информацию о пользователе
echo "Информация о пользователе:\n";
echo "Статус: " . $data['status'] . "\n";
echo "Временная метка: " . $data['timestamp'] . "\n";
echo "ID пользователя: " . $data['user_id'] . "\n";
echo "Email: " . ($data['user_info']['email'] ?? 'Н/Д') . "\n";
echo "Имя: " . ($data['user_info']['name'] ?? 'Н/Д') . "\n";
// Выводим статистику
echo "\nСтатистика пользователя:\n";
echo "Баланс: " . $data['stats']['balance'] . " TRX\n";
echo "Всего делегирований: " . $data['stats']['total_delegations'] . "\n";
echo "Всего делегировано энергии: " . $data['stats']['total_energy_delegated'] . "\n";
echo "Всего потрачено TRX: " . $data['stats']['total_trx_spent'] . " TRX\n";
echo "Всего депозитов: " . $data['stats']['total_deposit'] . " TRX\n";
echo "Средний курс (Sun/Energy): " . $data['stats']['avg_rate_sun_energy'] . "\n";
echo "Экономия с Netts: " . $data['stats']['save_by_netts_percent'] . "%\n";
echo "Экономия в долларах: $" . $data['stats']['save_in_dollars'] . "\n";
// Выводим информацию о сети
echo "\nИнформация о сети:\n";
echo "Цена TRX: $" . $data['network_info']['trx_price'] . "\n";
echo "Комиссия сети за энергию: " . $data['network_info']['network_energy_fee'] . "\n";
?>
# Обработка ошибок
Все примеры должны реализовывать правильную обработку ошибок. Вот расширенный пример на Python, который демонстрирует, как обрабатывать различные сценарии ошибок:
#!/usr/bin/env python3
import sys
import json
import requests
from datetime import datetime
# Конфигурация
url = "https://netts.io/apiv2/prices"
api_key = "ваш_api_ключ" # Замените на ваш реальный API-ключ
headers = {
"Content-Type": "application/json",
"X-API-KEY": api_key
}
try:
print(f"[{datetime.now()}] Отправка запроса цен на {url}")
# Отправляем GET-запрос к API цен
response = requests.get(url, headers=headers, timeout=15)
# Проверяем HTTP-ошибки
if response.status_code != 200:
if response.status_code == 401:
print("Ошибка аутентификации: Неверный API-ключ или IP-адрес не в белом списке")
elif response.status_code == 429:
print("Превышен лимит частоты запросов: Слишком много запросов")
elif response.status_code >= 500:
print("Ошибка сервера: Сервер API столкнулся с ошибкой")
else:
print(f"HTTP-ошибка: {response.status_code}")
# Пытаемся разобрать сообщение об ошибке из JSON-ответа
try:
error_data = response.json()
print(f"Сообщение об ошибке: {error_data.get('msg', 'Неизвестная ошибка')}")
except:
print(f"Необработанный ответ: {response.text}")
sys.exit(1)
# Обрабатываем JSON-ответ
try:
data = response.json()
# Проверяем статус в ответе
if data.get('status') != 'success':
print(f"API вернул статус отличный от успеха: {data.get('status')}")
print(f"Сообщение об ошибке: {data.get('message', 'Сообщение не предоставлено')}")
sys.exit(1)
# Продолжаем обработку успешного ответа...
print("\nИнформация о ценах:")
print(f"Текущее время UTC: {data.get('current_utc_time')}")
print(f"Активный период: {data.get('active_period')}")
# ... остальной код обработки
except json.JSONDecodeError:
print("Ошибка: Не удалось разобрать JSON-ответ")
print(f"Необработанный ответ: {response.text}")
sys.exit(1)
except requests.exceptions.Timeout:
print("Ошибка: Время ожидания запроса истекло")
sys.exit(1)
except requests.exceptions.ConnectionError:
print("Ошибка: Не удалось подключиться к серверу API")
sys.exit(1)
except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {str(e)}")
sys.exit(1)
except Exception as e:
print(f"Непредвиденная ошибка: {str(e)}")
sys.exit(1)