PHP
Installieren Sie das PHP-SDK von CaptureKit und starten Sie Ihren ersten API-Aufruf.
Das offizielle PHP-SDK von CaptureKit mit einer typisierten Methode pro Endpunkt und einem generischen request() für alles andere.
Voraussetzungen
- PHP 8.1+
Installation
composer require capturekitdev/sdkAPI-Schlüssel erhalten
Kopieren Sie Ihren API-Schlüssel aus dem CaptureKit-Dashboard und legen Sie ihn in der Umgebungsvariable CAPTUREKIT_API_KEY ab, die das SDK standardmäßig liest. Checken Sie ihn nicht in die Versionsverwaltung ein.
Schnellstart
<?php
require 'vendor/autoload.php';
use CaptureKit\Client;
$client = new Client(getenv('CAPTUREKIT_API_KEY') ?: null);
$response = $client->content(['url' => 'https://example.com']);
print_r($response->data);Asynchrone Jobs
Jeder Aufruf akzeptiert is_async, nützlich jenseits des Serverlimits von 60 Sekunden. Die Antwort ist dann eine job_id, und das SDK kann auf das Ende des Jobs warten.
$submitted = $client->content(['url' => 'https://example.com', 'is_async' => true]);
$job = $client->waitForJob($submitted->data['job_id'], onProgress: static function (array $job): void {
echo $job['status'], ' ', $job['progress'] ?? 0, "%\n";
});
print_r($job->data);Fehler
Eine Antwort außerhalb von 2xx löst einen API-Fehler mit Status und Meldung aus. Die vollständige Liste finden Sie unter Statuscodes.
use CaptureKit\Exception\ApiException;
try {
$client->content(['url' => 'https://example.com']);
} catch (ApiException $exception) {
echo $exception->status, ': ', $exception->getMessage();
}Wiederholungen
Anfragen werden bis zu 3-mal wiederholt nach einem Netzwerkfehler, einem 408, 500, 502, 503 oder 504 oder einem Ratenlimit des Tarifs. Kontingentfehler pro Schlüssel und clientseitige Timeouts werden nicht wiederholt. Die Wartezeit beginnt bei 1 Sekunde und wächst pro Wiederholung um das 1,5-Fache; ein Retry-After-Header hat Vorrang.
$client = new Client(null, ['max_retries' => 5, 'retry_delay' => 0.5]);
$client->content(['url' => 'https://example.com'], new RequestOptions(maxRetries: 0)); // one request without retriesBatch-Anfragen
Führen Sie viele Aufrufe gleichzeitig aus, standardmäßig 10. Ein Fehler stoppt die anderen nicht.
$inputs = ['https://example.com', 'https://www.capturekit.dev', 'https://github.com'];
$calls = array_map(static fn(string $value): array => ['content', ['url' => $value]], $inputs);
foreach ($client->batch($calls, concurrency: 5) as $result) {
if ($result->ok()) {
print_r($result->value->data);
} else {
echo $inputs[$result->index], ': ', $result->error->getMessage(), "\n";
}
}Beliebiger Endpunkt
request() erreicht jeden Pfad, auch Endpunkte, die nach Ihrer SDK-Version erschienen sind.
$response = $client->request('GET', '/v1/usage');Häufige Fehler
- Den API-Schlüssel in Frontend-Code einbauen. Jeder könnte ihn lesen. Rufen Sie die API von Ihrem Server auf.
- Jeden
401als falschen Schlüssel behandeln. Ein401kann auch ein Ratenlimit sein: Lesen Sie die Meldung. Das SDK wiederholt Tarif-Ratenlimits automatisch. - Einen
402wiederholen. Es sind keine Credits oder Kontingente mehr übrig, eine Wiederholung kann also nicht gelingen. Siehe Credits. - Auf lange Anfragen warten. Nutzen Sie ab 60 Sekunden den asynchronen Modus wie oben gezeigt, statt das Timeout zu erhöhen. Siehe Timeout.
Links
- Paket:
capturekitdev/sdk - Quellcode: github.com/capturekitdev/capturekit-php
- API-Referenz