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.