Riferimento API
Usa il pacchetto pubblico javascript-obfuscator per le build da CLI e Node.js. Gestisce lo streaming e i caricamenti di grandi dimensioni. I client REST diretti devono implementare il protocollo descritto di seguito.
Guarda
Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets
Crea una chiave API in Impostazioni → Chiavi API. È richiesto un accesso Pro, Team o Business. Conserva la chiave sul tuo server o nell'archivio dei segreti della CI, mai nel codice eseguito nel browser. Il pacchetto javascript-obfuscator riceve la chiave come apiToken (--pro-api-token nella CLI); una richiesta REST diretta la invia nell'intestazione Authorization: Bearer. Con un piano Team o Business, il proprietario del team può selezionare Chiave di servizio del team nella finestra di dialogo Crea chiave API; quella chiave appartiene al team anziché a una persona, quindi continua a funzionare quando i membri se ne vanno.
Chiavi API · Utilizzo del pacchetto NPM
Richiesta
POST https://obfuscator.io/api/v1/obfuscate
Invia un JSON con code e options. Attiva almeno una funzionalità Pro: vmObfuscation: true oppure parseHtml: true. Fissa il parametro di query version per ottenere build ripetibili; se lo ometti viene usata la versione più recente. Accetta una versione esatta come 8.0.0 oppure un intervallo: ^8.0.0 segue le nuove release minor e patch della 8.x, ~8.0.0 segue le release patch della 8.0.x, e un intervallo si risolve nella release corrispondente più alta. Gli intervalli richiedono un piano Team o Business.
options elenca le opzioni stesse; un nome di preset in optionsPreset non viene applicato. Per eseguire una build con un preset, integrato o personalizzato, recupera le sue opzioni dall'endpoint dei preset con una richiesta separata e inviale come options.
Se il proprietario del team impone una versione o un preset, questi sostituiscono la version o le options della richiesta per i membri del team e le chiavi di servizio del team. Consulta Imporre una versione al team e Preset condivisi.
| Intestazione | Valore |
|---|---|
Content-Type | application/json |
Authorization | Bearer YOUR_API_KEY |
Risposta
Leggi il corpo come JSON delimitato da ritorni a capo (NDJSON). Una lettura dalla rete può spezzare una riga JSON o un carattere UTF-8. L'avanzamento non indica il completamento: attendi un messaggio result o chunk_end e conserva i warnings.
Un output piccolo arriva in un unico messaggio result. Un output grande arriva come messaggi chunk seguiti da chunk_end. Entrambi i messaggi finali contengono version, la versione concreta dell'offuscatore che ha prodotto l'output (utile quando hai richiesto un intervallo o quando il team impone una versione). warnings elenca gli avvisi di offuscamento non bloccanti nella forma { type, message, functionName? } e viene omesso quando non ce ne sono, quindi tratta un campo mancante come un elenco vuoto. Le source map non vengono prodotte per le build VM né per l'input HTML. Una build parseHtml di JavaScript semplice con sourceMap: true ne restituisce una nel campo sourceMap del messaggio finale, oppure come chunk sourceMap quando è grande.
Gli errori applicativi arrivano come messaggi error all'interno dello stream, di solito con HTTP 200. Controlla sia lo stato HTTP sia gli errori nello stream. Gli endpoint di infrastruttura e di caricamento possono restituire risposte HTTP diverse da 2xx.
Node.js (.mjs)
Preset
GET https://obfuscator.io/api/v1/presets/{name}
Restituisce le opzioni di un preset, pronte per essere inviate come options della richiesta di offuscamento. Invia la stessa intestazione Authorization: Bearer. Il nome viene confrontato senza distinzione tra maiuscole e minuscole, e la risposta è un singolo oggetto JSON, non uno stream. Gli esempi qui sotto sono abbreviati.
- Preset integrati:
{name}è un preset integrato comevm-default(vedi Scegliere i preset). Il parametro di queryversionseleziona la versione dell'offuscatore di cui viene restituito il preset; accetta gli stessi valori dell'endpoint di offuscamento e per impostazione predefinita usa l'ultima versione.descriptioneupdatedAtsononull. - Preset personalizzati:
{name}è l'alias API impostato nella finestra di salvataggio di un preset personalizzato nella dashboard, eoptionsè la configurazione salvata (tutte le opzioni, non solo quelle modificate rispetto a un preset). La visibilità segue la dashboard: una chiave API risolve i preset del proprio utente più quelli condivisi dal proprietario del team di quell'utente, mentre una chiave di servizio del team risolve i preset del proprietario.
GET https://obfuscator.io/api/v1/presets/vm-default
GET https://obfuscator.io/api/v1/presets/production
| Stato | Significato |
|---|---|
| 200 | Il preset. |
| 400 | Il nome non è valido (da 1 a 20 caratteri, lettere a-z, cifre, trattini o underscore, e deve iniziare con una lettera o una cifra), oppure la version non è supportata. |
| 401 | Chiave API mancante, non valida o scaduta. |
| 403 | Account sospeso, nessun abbonamento attivo oppure un piano senza accesso API. |
| 404 | Non esiste alcun preset integrato con questo nome nella versione richiesta, e nessun preset personalizzato con questo alias è visibile alla chiave. |
| 429 | Limite di frequenza raggiunto; la richiesta condivide i budget per utente e per IP descritti in Limiti ed errori. |
| 500 | La ricerca del preset non è riuscita sul server. Riprova più tardi. |
Gli errori hanno la forma {"error": "..."}. Gli esempi d'uso per il pacchetto javascript-obfuscator e la relativa CLI si trovano in Utilizzo del pacchetto NPM.
Limiti ed errori
I limiti del piano si applicano alla dimensione del sorgente e all'utilizzo. Mantieni l'intero corpo JSON serializzato, inclusi l'escaping e le opzioni, sotto 4.4 MB. I sorgenti più grandi richiedono caricamenti temporanei, disponibili con Team e Business solo tramite il pacchetto javascript-obfuscator. Controlla i limiti attuali del tuo piano nella dashboard.
L'API consente 30 richieste al minuto per utente, condivise tra le sue chiavi, e 100 richieste al minuto per IP. Le richieste dei preset rientrano negli stessi budget delle richieste di offuscamento.
Il superamento del limite di frequenza, l'esaurimento della quota e gli stream interrotti devono fermare la build. Ripeti le richieste in modo consapevole: una richiesta ripetuta può consumare ulteriore utilizzo. Non pubblicare output parziali.
