Bearcat mit externen Tools steuern
Über die REST-API erstellst du Releases, steuerst Uploads und erfasst Forenposts. Alle Parameter und Antwortfelder stehen in der API-Referenz.
Befehle
Abschnitt betitelt „Befehle“| Endpunkt | Zweck |
|---|---|
POST /api/v1/releases |
Erstellt ein Release aus einem Ordner und einem Releasetemplate. |
POST /api/v1/releases/{releaseId}/start-initial-uploads |
Erstellt die ersten Uploads ohne Wartezeit. |
POST /api/v1/uploads/{uploadId}/reupload |
Erstellt einen neuen Upload, wenn der bisherige Offline, PartiallyOnline, Canceled oder Failed ist. |
POST /api/v1/uploads/{uploadId}/cancel |
Bricht einen anstehenden oder laufenden Upload ab. |
POST /api/v1/uploads/{uploadId}/resume |
Stellt einen abgebrochenen Upload erneut in die Warteschlange. |
POST /api/v1/uploads/{uploadId}/check-state |
Prüft sofort den Onlinestatus beim Hoster. |
POST /api/v1/releases/{releaseId}/posted-locations |
Speichert die URL, unter der das Release gepostet wurde. |
POST /api/v1/releases/{releaseId}/mark-posted |
Entfernt das Release aus der Postwarteschlange. |
Die API kann keine Hoster, Templates, Regeln oder Zugangsdaten ändern und keine Daten löschen.
API-Schlüssel
Abschnitt betitelt „API-Schlüssel“Setze Bearcat:ApiKey und sende den Wert bei jeder POST-Anfrage im Header X-Api-Key mit.
Ohne konfigurierten Schlüssel geben Befehle 403 zurück. GET-Anfragen brauchen keinen Schlüssel.
Schlüssel erzeugen:
Starte Bearcat neu, nachdem du ihn gesetzt hast.
Setze BEARCAT_API_KEY in .env:
Führe dann docker compose up -d aus.
Windows-Dienst
Abschnitt betitelt „Windows-Dienst“Füge in %ProgramData%\Bearcat\config.json einen Abschnitt Bearcat hinzu:
Starte den Dienst mit sc stop Bearcat und sc start Bearcat neu.
Bearcat.Cli.exe setup und Bearcat.Cli.exe set-db-password behalten den Abschnitt bei. Siehe Bearcat als Windows-Dienst ausführen.
Desktopanwendung
Abschnitt betitelt „Desktopanwendung“Gib den Schlüssel im Feld API key der Desktopanwendung ein und klicke auf Save. Läuft Bearcat, klicke auf Stop und Start Bearcat.
Direkt gestarteter Bearcat.Host
Abschnitt betitelt „Direkt gestarteter Bearcat.Host“Setze die Umgebungsvariable Bearcat__ApiKey oder erstelle appsettings.user.json im Arbeitsverzeichnis:
Netzwerk
Abschnitt betitelt „Netzwerk“Betreibe Bearcat in einem vertrauenswürdigen Netzwerk. Der Schlüssel schützt Befehle, aber jeder, der Bearcat erreichen kann, kann Releases, Uploads und Downloadlinks lesen.
Die Desktopanwendung und der Windows-Dienst lauschen nur auf 127.0.0.1:17208, das aufrufende Tool muss also auf demselben Rechner laufen. Docker veröffentlicht Port 8080.
Beispielablauf
Abschnitt betitelt „Beispielablauf“1. Release erstellen
Abschnitt betitelt „1. Release erstellen“folderPath: absoluter Pfad auf dem Bearcat-Host. In Docker verwendest du den Containerpfad unter/mnt/data/releases, woRELEASES_DIReingebunden ist.releaseTemplateId: die Zahl am Ende der URL des Templates unter Releasetemplates.name: optional, standardmässig der Ordnername.primaryLanguageCode: optional, zwei Buchstaben, zum Beispielde.
Warte mit dem Aufruf, bis alle Dateien im Ordner sind. Bearcat wartet nicht, bis Dateien fertig kopiert sind. Die Anfrage kann einige Sekunden dauern, während Bearcat die Releaseinformationen abruft.
Antwort: 201 Created mit dem Release.
2. Uploads beobachten
Abschnitt betitelt „2. Uploads beobachten“Bearcat erstellt Archive und Uploads im Hintergrund nach dem Cooldown für initiale Uploads.
Uploads eines Releases:
Mögliche Werte für uploadState: WaitingForArchive, Pending, Uploading, Completed, Failed, CancellationRequested, Canceled.
Abgeschlossene Uploads vom ältesten zum neuesten abfragen:
Übergib beim nächsten Aufruf den uploadedAt-Wert des letzten Eintrags als uploadedAfter. Verwende --data-urlencode, damit Zeichen wie + im Zeitstempel korrekt übertragen werden.
3. Releases zum Posten finden
Abschnitt betitelt „3. Releases zum Posten finden“Liefert dieselben Releases wie die Postwarteschlange.
4. Links abrufen
Abschnitt betitelt „4. Links abrufen“5. Post erfassen
Abschnitt betitelt „5. Post erfassen“distributionSiteRegistrationId und forumPostTemplateId sind optional.
Antwort: 201 Created, oder 200 OK mit dem bestehenden Eintrag, wenn die URL für dieses Release bereits gespeichert ist.
Antwort: 204 No Content. Das Release kommt zurück in die Postwarteschlange, wenn ein neuerer Upload abgeschlossen wird.
Statuscodes
Abschnitt betitelt „Statuscodes“| Code | Bedeutung |
|---|---|
400 |
Ungültige Anfrage, zum Beispiel ein relativer folderPath, ein fehlender Ordner oder ein unbekanntes Template. errors listet die Felder. |
401 |
X-Api-Key fehlt oder ist falsch. |
403 |
Kein API-Schlüssel konfiguriert. |
404 |
Release oder Upload nicht gefunden. |
409 |
Der Befehl ist im aktuellen Zustand nicht erlaubt, etwa weil der Ordner bereits verwendet wird oder der Upload nicht abgebrochen ist. |
Fehlerantworten verwenden das JSON-Format Problem Details. Die Fehlermeldung steht in detail.
