DevCraft Документации
РазработкиAPI WrappersWebShare Proxy PHP WrapperGuides

Stats и config v1.0.0

ProxyStats, ProxyConfig, кэш GET и обработка ошибок.

Статистика, plan-level config, поведение кэша и ретраи.

ProxyConfig (v3)

Plan-level конфигурация (timeouts, auto-replace, download token, geo для IP auth). Не путать с Profile preferences.

$config = App::Requests('ProxyConfig')->withPlanId($planId);
$config->retrieve();
$config->status();
$config->listStats();
$config->update(['/* fields */']);

См. ProxyConfigRequest.

ProxyStats

$stats = App::Requests('ProxyStats');
$stats->list();
$stats->aggregate();
foreach ($stats->iterateActivities() as $activity) {
    // ...
}

См. ProxyStatsRequest.

Кэширование

Успешные GET кэшируются (CACHE_LIFETIME). Мутации инвалидируют tag ресурса. Пути с /download/ никогда не кэшируются.

Обход:

  • forceRefresh: true на request() / Client::send()
  • или CACHE_ENABLED=0

См. CacheManager, Client.

Ошибки и ретраи

use Devcraft\Webshare\Exceptions\ApiException;
use Devcraft\Webshare\Exceptions\RateLimitException;

try {
    App::Requests('Proxy')->query()->withFilter('mode', 'direct');
    App::Requests('Proxy')->getList();
} catch (RateLimitException $e) {
    echo "Retry after {$e->retryAfterSeconds}s\n";
} catch (ApiException $e) {
    foreach ($e->getValidationErrors() as $field => $errors) {
        foreach ($errors as $error) {
            echo "$field: {$error['message']}\n";
        }
    }
}

429/5xx: до 3 ретраев с exponential backoff; предпочитается Retry-After; x-ratelimit-reset конвертируется и clamp 1–120s.

См. ApiException, RateLimitException.

На этой странице