Java
Installez le SDK Java de CaptureKit et faites votre premier appel d'API.
Le SDK Java officiel de CaptureKit, avec une méthode typée par endpoint et un request() générique pour le reste.
Prérequis
- Java 17+
Installation
Le SDK Java n'est pas sur Maven Central. Compilez-le depuis les sources pour l'installer dans votre dépôt Maven local, puis ajoutez-le à votre projet.
git clone https://github.com/capturekitdev/capturekit-java.git
cd capturekit-java
mvn -q install -DskipTests<dependency>
<groupId>dev.capturekit</groupId>
<artifactId>capturekit</artifactId>
<version>0.1.0</version>
</dependency>implementation("dev.capturekit:capturekit:0.1.0")Obtenir votre clé API
Copiez votre clé API depuis le tableau de bord CaptureKit et placez-la dans la variable d'environnement CAPTUREKIT_API_KEY, que le SDK lit par défaut. Ne la versionnez pas.
Démarrage rapide
import dev.capturekit.ApiResponse;
import dev.capturekit.CaptureKitClient;
import dev.capturekit.params.ContentParams;
CaptureKitClient client = CaptureKitClient.fromEnv();
ApiResponse response = client.content(ContentParams.builder().url("https://example.com").build());
System.out.println(response.json().toPrettyString());Jobs asynchrones
Tout appel accepte is_async, utile au-delà de la limite serveur de 60 secondes. La réponse est alors un job_id, et le SDK peut attendre la fin du job.
ApiResponse submitted = client.content(ContentParams.builder().url("https://example.com").isAsync(true).build());
ApiResponse job = client.waitForJob(
submitted.json().get("job_id").asText(),
Duration.ofSeconds(3),
Duration.ofHours(12),
progress -> System.out.println(progress.path("status").asText() + " " + progress.path("progress").asInt()));Erreurs
Une réponse hors 2xx lève une erreur d'API avec son statut et son message. Consultez les codes de statut pour la liste complète.
try {
client.content(ContentParams.builder().url("https://example.com").build());
} catch (CaptureKitApiException e) {
System.err.println(e.status() + ": " + e.getMessage());
}Nouvelles tentatives
Les requêtes sont retentées jusqu'à 3 fois après une erreur réseau, un 408, 500, 502, 503 ou 504, ou une limite de débit du forfait. Les erreurs de quota par clé et les expirations côté client ne sont pas retentées. Le délai commence à 1 seconde et augmente de 1,5× à chaque tentative, et un en-tête Retry-After a la priorité.
CaptureKitClient client = CaptureKitClient.builder().maxRetries(5).retryDelay(Duration.ofMillis(500)).build();
client.content(ContentParams.builder().url("https://example.com").build(), RequestOptions.builder().maxRetries(0).build()); // one request without retriesRequêtes par lots
Lancez plusieurs appels à la fois, 10 par défaut. Un échec n'arrête pas les autres.
List<String> inputs = List.of("https://example.com", "https://www.capturekit.dev", "https://github.com");
List<BatchResult<ApiResponse>> results = client.batch(inputs, 5, value ->
client.content(ContentParams.builder().url(value).build()));
for (BatchResult<ApiResponse> result : results) {
if (result.ok()) {
System.out.println(result.value().json());
} else {
System.err.println(inputs.get(result.index()) + ": " + result.error().getMessage());
}
}N'importe quel endpoint
request() atteint n'importe quel chemin, y compris les endpoints sortis après votre version du SDK.
ApiResponse response = client.request("GET", "/v1/usage", Map.of());Erreurs fréquentes
- Mettre la clé API dans le code front-end. N'importe qui pourrait la lire. Appelez l'API depuis votre serveur.
- Considérer tout
401comme une mauvaise clé. Un401peut aussi signaler une limite de débit : lisez le message. Le SDK retente pour vous les limites du forfait. - Retenter un
402. Il n'y a plus de crédits ni de quota, donc une nouvelle tentative ne peut pas réussir. Consultez Crédits. - Attendre les requêtes longues. Au-delà de 60 secondes, utilisez le mode asynchrone comme ci-dessus plutôt que d'augmenter votre délai. Voir Timeout.
Liens
- Paquet:
capturekit-java - Code source: github.com/capturekitdev/capturekit-java
- Référence API