Перейти до вмісту

Скидання та готовність порту

Створення порту та скидання IP запускають роботу, яка може тривати після відповіді API. Орієнтуйтеся на спостережуваний стан, а не на фіксовану паузу.

Який ідентифікатор передавати

Section titled “Який ідентифікатор передавати”

У публічних маршрутах портів передавайте значення Port.port як {id}. Наприклад, порт із "port": "10000" читається через GET /ports/10000 і скидається через POST /ports/10000/reset.

Внутрішні ObjectID та ідентифікатори послуг не є ідентифікаторами публічних маршрутів. resetToken використовується лише в GET /tokens/{token} і не замінює bearer-автентифікацію.

Життєвий цикл ручного скидання

Section titled “Життєвий цикл ручного скидання”

Для кожного навмисного скидання надсилайте новий UUID-ключ ідемпотентності:

Terminal window
curl -i -X POST "https://api.ltesocks.io/v2/ports/10000/reset" \
-H "Authorization: Bearer ${LTESOCKS_API_TOKEN}" \
-H "Idempotency-Key: 7c838e2d-7d52-42e7-aed1-528829cbd514"
const port = await client.ports.reset({
id: '10000',
idempotencyKey: '7c838e2d-7d52-42e7-aed1-528829cbd514',
});
СигналЩо він підтверджує
HTTP 200 з об’єктом PortЗапит на скидання прийнято й повернуто поточний знімок порту
Запис про скидання в GET /ports/{id}/logДію скидання записано в журнал
Інше значення ip у GET /ports/{id}Публічна IP-адреса, яку спостерігає API, змінилася
Вебхук port.ip_changedLTESocks зафіксував зміну IP і передав старе та нове значення

Віддавайте перевагу вебхуку port.ip_changed. Без вебхуків опитуйте GET /ports/{id} з обмеженим backoff і порівнюйте ip зі значенням до скидання. Сам статус не підтверджує зміну IP.

Мінімальний cooldown між користувацькими скиданнями — 60 секунд. Налаштування пулу порту можуть вимагати довшого очікування, тому 60 секунд — нижня межа, а не обіцянка доступності наступного скидання.

Коли скидання тимчасово недоступне, документована відповідь про помилку може містити:

ЗаголовокЗначення
Retry-AfterЦілу кількість секунд очікування, округлену вгору
Retry-AtАбсолютний час наступної спроби у форматі RFC 3339

Якщо присутні обидва заголовки, чекайте до пізнішого обчисленого моменту, щоб урахувати розбіжність годинників. Не повторюйте скидання негайно за відсутності заголовків: застосуйте обмежений backoff і спочатку перевірте порт.

Для повної зміни IP немає документованої наскрізної тривалості. Готовність нового підключення залежить від мережі й призначеного модема.

Інтервал налаштовується через POST /ports/{id}/autoreset:

{
"autoResetInterval": 600
}
ЗначенняПоведінка
0Автоматичні скидання вимкнено
1179Значення може зберегтися, але планувальник не виконує скидання з таким інтервалом; не використовуйте його
180 і більшеПідтримувані мобільні порти плануються з інтервалом у секундах

Інтервал відлічується від відповідного призначення порту або точки планування. Скидання не запуститься раніше строку, але це не точний розклад за годинником. Виконання асинхронне й потребує підтримуваного, не вимкненого порту з пулу та призначеного модема.

Готовність після замовлення

Section titled “Готовність після замовлення”

POST /ports/order повертає знімок створеного порту, але сама відповідь не підтверджує готовність проксі-підключення та IP для робочого трафіку.

  1. Передайте Idempotency-Key із замовленням і збережіть повернуте значення port.
  2. Після таймауту повторіть точний запит із тим самим ключем замість створення нового замовлення.
  3. Читайте GET /ports/{id}, доки порт не отримає придатну IP-адресу, і перевіряйте підключення з обмеженою стратегією повторів.
  4. Підключіть вебхуки, якщо потрібна подієва обробка змін IP.

Повна таблиця рішень наведена на сторінці Ідемпотентність і безпечні повтори, а поля й фільтри журналів — у розділі Керування портами.