Dokumentation
/

API-Referenz

API-Referenz

Verwenden Sie für CLI- und Node.js-Builds das öffentliche Paket javascript-obfuscator. Es übernimmt Streaming und große Uploads. Direkte REST-Clients müssen das unten beschriebene Protokoll implementieren.

Ansehen

Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets

Auf YouTube ansehen

Erstellen Sie einen API-Schlüssel unter Einstellungen → API-Schlüssel. Erforderlich ist Pro-, Team- oder Business-Zugang. Bewahren Sie den Schlüssel auf Ihrem Server oder im Geheimnisspeicher Ihrer CI auf, niemals im Browsercode. Das Paket javascript-obfuscator erwartet den Schlüssel als apiToken (--pro-api-token in der CLI); eine direkte REST-Anfrage sendet ihn im Header Authorization: Bearer. Im Team- oder Business-Tarif kann der Team-Inhaber im Dialog API-Schlüssel erstellen die Option Team-Serviceschlüssel ankreuzen; dieser Schlüssel gehört dem Team statt einer Person und funktioniert daher weiter, wenn Mitglieder das Team verlassen.

API-Schlüssel · Das NPM-Paket verwenden

Anfrage

POST https://obfuscator.io/api/v1/obfuscate

Senden Sie JSON mit code und options. Aktivieren Sie mindestens eine Pro-Funktion: vmObfuscation: true oder parseHtml: true. Legen Sie den Query-Parameter version fest, um reproduzierbare Builds zu erhalten; ohne ihn wird die neueste Version verwendet. Er akzeptiert eine exakte Version wie 8.0.0 oder einen Bereich: ^8.0.0 folgt neuen Minor- und Patch-Releases von 8.x, ~8.0.0 folgt Patch-Releases von 8.0.x, und ein Bereich wird auf das höchste passende Release aufgelöst. Bereiche erfordern einen Team- oder Business-Tarif.

options führt die Optionen selbst auf; ein Voreinstellungsname in optionsPreset wird nicht angewendet. Um mit einer Voreinstellung zu bauen, ob eingebaut oder eigen, rufen Sie deren Optionen in einer separaten Anfrage vom Voreinstellungs-Endpunkt ab und senden Sie sie als options.

Wenn der Team-Inhaber eine Version oder eine Voreinstellung erzwingt, überschreibt diese für Teammitglieder und Team-Serviceschlüssel die version bzw. die options der Anfrage. Siehe Eine Version für Ihr Team erzwingen und Geteilte Voreinstellungen.

HeaderWert
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

Code

Antwort

Lesen Sie den Body als zeilengetrenntes JSON (NDJSON). Ein einzelner Netzwerk-Lesevorgang kann eine JSON-Zeile oder ein UTF-8-Zeichen zerteilen. Fortschritt bedeutet nicht Abschluss: Verlangen Sie eine result- oder chunk_end-Nachricht und bewahren Sie die warnings auf.

Kleine Ausgaben kommen in einer einzigen result-Nachricht an. Große Ausgaben kommen als chunk-Nachrichten, gefolgt von chunk_end. Beide abschließenden Nachrichten enthalten version, die konkrete Obfuscator-Version, die die Ausgabe erzeugt hat (nützlich, wenn Sie einen Bereich angefordert haben oder das Team eine Version erzwingt). warnings listet nicht fatale Obfuskierungswarnungen als { type, message, functionName? } auf und fehlt, wenn es keine gibt; behandeln Sie ein fehlendes Feld daher als leere Liste. Für VM-Builds und für HTML-Eingaben werden keine Source Maps erzeugt. Ein parseHtml-Build von reinem JavaScript mit sourceMap: true liefert eine Source Map im Feld sourceMap der abschließenden Nachricht oder, wenn sie groß ist, als sourceMap-Chunks.

Anwendungsfehler kommen als error-Nachrichten innerhalb des Streams an, meist mit HTTP 200. Prüfen Sie sowohl den HTTP-Status als auch Fehler im Stream. Infrastruktur- und Upload-Endpunkte können HTTP-Antworten außerhalb des 2xx-Bereichs zurückgeben.

Code

Code

JSON

Node.js (.mjs)

JavaScript

Code

Voreinstellungen

GET https://obfuscator.io/api/v1/presets/{name}

Gibt die Optionen einer Voreinstellung zurück, bereit zum Senden als options der Obfuskierungsanfrage. Senden Sie denselben Authorization: Bearer-Header. Beim Namen wird Groß- und Kleinschreibung nicht unterschieden, und die Antwort ist ein einzelnes JSON-Objekt, kein Stream. Die Beispiele unten sind gekürzt.

  • Eingebaute Voreinstellungen: {name} ist eine eingebaute Voreinstellung wie vm-default (siehe Voreinstellungen wählen). Der Query-Parameter version wählt die Obfuscator-Version, deren Voreinstellung zurückgegeben wird; er akzeptiert dieselben Werte wie der Obfuskierungs-Endpunkt und verwendet standardmäßig die neueste Version. description und updatedAt sind null.
  • Eigene Voreinstellungen: {name} ist der API-Alias, der im Speichern-Dialog einer eigenen Voreinstellung im Dashboard festgelegt wurde, und options ist die gespeicherte Konfiguration (alle Optionen, nicht nur die gegenüber einer Voreinstellung geänderten). Die Sichtbarkeit entspricht dem Dashboard: Ein API-Schlüssel löst die eigenen Voreinstellungen seines Nutzers sowie die vom Team-Inhaber dieses Nutzers geteilten auf, und ein Team-Serviceschlüssel löst die Voreinstellungen des Inhabers auf.

GET https://obfuscator.io/api/v1/presets/vm-default

JSON

GET https://obfuscator.io/api/v1/presets/production

JSON

StatusBedeutung
200Die Voreinstellung.
400Der Name ist ungültig (1-20 Zeichen, Buchstaben a-z, Ziffern, Bindestriche oder Unterstriche, beginnend mit einem Buchstaben oder einer Ziffer), oder die version wird nicht unterstützt.
401Fehlender, ungültiger oder abgelaufener API-Schlüssel.
403Konto gesperrt, kein aktives Abonnement oder ein Tarif ohne API-Zugang.
404In der angeforderten Version gibt es keine eingebaute Voreinstellung mit diesem Namen, und für diesen Schlüssel ist keine eigene Voreinstellung mit diesem Alias sichtbar.
429Ratenlimit erreicht; die Anfrage teilt sich die Kontingente pro Nutzer und pro IP aus Limits und Fehler.
500Die Suche nach der Voreinstellung ist auf dem Server fehlgeschlagen. Versuchen Sie es später erneut.

Fehler haben die Form {"error": "..."}. Anwendungsbeispiele für das Paket javascript-obfuscator und seine CLI finden Sie unter Das NPM-Paket verwenden.

Limits und Fehler

Tariflimits gelten für Quellgröße und Nutzung. Halten Sie den vollständigen serialisierten JSON-Body, einschließlich Escaping und Optionen, unter 4.4 MB. Größere Quellen erfordern temporäre Uploads, die in den Tarifen Team und Business ausschließlich über das Paket javascript-obfuscator verfügbar sind. Ihre aktuellen Tariflimits sehen Sie im Dashboard.

Die API erlaubt 30 Anfragen pro Minute und Nutzer, verteilt auf alle seine Schlüssel, sowie 100 Anfragen pro Minute und IP. Anfragen nach Voreinstellungen zählen zu denselben Kontingenten wie Obfuskierungsanfragen.

Ratenbegrenzung, Kontingentfehler und abgebrochene Streams müssen den Build stoppen. Wiederholen Sie Anfragen bewusst; eine wiederholte Anfrage kann zusätzliche Nutzung verbrauchen. Veröffentlichen Sie keine unvollständige Ausgabe.

Tests und CI