Java
Installieren Sie das Java-SDK von Autom und starten Sie Ihren ersten API-Aufruf.
Das offizielle Java-SDK von Autom mit einer typisierten Methode pro Endpunkt und einem generischen request() für alles andere.
Voraussetzungen
- Java 17+
Installation
Das Java-SDK ist nicht auf Maven Central verfügbar. Bauen Sie es aus dem Quellcode, um es in Ihrem lokalen Maven-Repository zu installieren, und fügen Sie es dann Ihrem Projekt hinzu.
git clone https://github.com/automdev/autom-java.git
cd autom-java
mvn -q install -DskipTests<dependency>
<groupId>dev.autom</groupId>
<artifactId>autom</artifactId>
<version>0.1.0</version>
</dependency>implementation("dev.autom:autom:0.1.0")API-Schlüssel erhalten
Kopieren Sie Ihren API-Schlüssel aus dem Autom-Dashboard und legen Sie ihn in der Umgebungsvariable AUTOM_API_KEY ab, die das SDK standardmäßig liest. Checken Sie ihn nicht in die Versionsverwaltung ein.
Schnellstart
import dev.autom.ApiResponse;
import dev.autom.AutomClient;
import dev.autom.params.GoogleSearchParams;
AutomClient client = AutomClient.fromEnv();
ApiResponse response = client.googleSearch(GoogleSearchParams.builder().query("web scraping api").build());
System.out.println(response.json().toPrettyString());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.
ApiResponse submitted = client.googleSearch(GoogleSearchParams.builder().query("web scraping api").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()));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.
try {
client.googleSearch(GoogleSearchParams.builder().query("web scraping api").build());
} catch (AutomApiException e) {
System.err.println(e.status() + ": " + e.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.
AutomClient client = AutomClient.builder().maxRetries(5).retryDelay(Duration.ofMillis(500)).build();
client.googleSearch(GoogleSearchParams.builder().query("web scraping api").build(), RequestOptions.builder().maxRetries(0).build()); // one request without retriesBatch-Anfragen
Führen Sie viele Aufrufe gleichzeitig aus, standardmäßig 10. Ein Fehler stoppt die anderen nicht.
List<String> inputs = List.of("web scraping api", "serp api", "rank tracker");
List<BatchResult<ApiResponse>> results = client.batch(inputs, 5, value ->
client.googleSearch(GoogleSearchParams.builder().query(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());
}
}Beliebiger Endpunkt
request() erreicht jeden Pfad, auch Endpunkte, die nach Ihrer SDK-Version erschienen sind.
ApiResponse response = client.request("GET", "/v1/usage", Map.of());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:
autom-java - Quellcode: github.com/automdev/autom-java
- API-Referenz