Referensi API
Gunakan paket publik javascript-obfuscator untuk build CLI dan Node.js. Paket ini menangani streaming dan unggahan besar. Klien REST langsung harus mengimplementasikan protokol di bawah ini.
Tonton
Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets
Buat kunci API di Pengaturan → Kunci API. Diperlukan akses Pro, Team, atau Business. Simpan kunci di server Anda atau penyimpanan rahasia CI, jangan pernah di kode peramban. Paket javascript-obfuscator menerima kunci sebagai apiToken (--pro-api-token di CLI); permintaan REST langsung mengirimkannya di header Authorization: Bearer. Pada paket Team atau Business, pemilik tim dapat mencentang Token layanan tim di dialog Buat Kunci API; kunci tersebut milik tim, bukan milik perorangan, sehingga tetap berfungsi ketika anggota keluar.
Kunci API · Menggunakan Paket NPM
Permintaan
POST https://obfuscator.io/api/v1/obfuscate
Kirim JSON berisi code dan options. Aktifkan setidaknya satu fitur Pro: vmObfuscation: true atau parseHtml: true. Sematkan parameter kueri version agar build dapat diulang; jika dihilangkan, versi terbaru yang digunakan. Parameter ini menerima versi tepat seperti 8.0.0, atau sebuah rentang: ^8.0.0 mengikuti rilis minor dan patch baru dari 8.x, ~8.0.0 mengikuti rilis patch dari 8.0.x, dan rentang mengarah ke rilis tertinggi yang cocok. Rentang memerlukan paket Team atau Business.
options mencantumkan opsi-opsinya sendiri; nama preset di optionsPreset tidak diterapkan. Untuk membuat build dengan preset, baik bawaan maupun kustom, ambil opsinya dari endpoint preset dalam permintaan terpisah lalu kirim sebagai options.
Jika pemilik tim menerapkan versi atau preset secara wajib, penerapan tersebut menimpa version atau options pada permintaan untuk anggota tim dan token layanan tim. Lihat Menerapkan versi untuk tim Anda dan Preset Bersama.
| Header | Nilai |
|---|---|
Content-Type | application/json |
Authorization | Bearer YOUR_API_KEY |
Respons
Baca isi respons sebagai JSON yang dipisahkan baris baru (NDJSON). Satu pembacaan jaringan dapat memotong satu baris JSON atau satu karakter UTF-8. Progres bukan berarti selesai: wajibkan pesan result atau chunk_end, dan simpan warnings.
Keluaran kecil datang dalam satu pesan result. Keluaran besar datang sebagai pesan chunk yang diikuti chunk_end. Kedua pesan terminal membawa version, yaitu versi obfuscator konkret yang menghasilkan keluaran (berguna ketika Anda meminta sebuah rentang atau tim menerapkan versi secara wajib). warnings mencantumkan peringatan obfuskasi non-fatal sebagai { type, message, functionName? } dan dihilangkan jika tidak ada, jadi perlakukan field yang tidak ada sebagai daftar kosong. Source map tidak dihasilkan untuk build VM maupun untuk masukan HTML. Build parseHtml dari JavaScript biasa dengan sourceMap: true mengembalikannya di field sourceMap pada pesan terminal, atau sebagai chunk sourceMap jika ukurannya besar.
Kegagalan aplikasi datang sebagai pesan error di dalam stream, biasanya dengan HTTP 200. Periksa status HTTP sekaligus error di dalam stream. Endpoint infrastruktur dan unggahan dapat mengembalikan respons HTTP selain 2xx.
Node.js (.mjs)
Preset
GET https://obfuscator.io/api/v1/presets/{name}
Mengembalikan opsi sebuah preset, siap dikirim sebagai options pada permintaan obfuskasi. Kirim header Authorization: Bearer yang sama. Nama dicocokkan tanpa membedakan huruf besar dan kecil, dan responsnya berupa satu objek JSON, bukan stream. Contoh di bawah disingkat.
- Preset bawaan:
{name}adalah preset bawaan sepertivm-default(lihat Memilih Preset). Parameter kueriversionmemilih versi obfuscator yang presetnya dikembalikan; parameter ini menerima nilai yang sama dengan endpoint obfuskasi dan secara default memakai versi terbaru.descriptiondanupdatedAtbernilainull. - Preset kustom:
{name}adalah alias API yang disetel di dialog penyimpanan preset kustom di dasbor, danoptionsadalah konfigurasi yang disimpan (setiap opsi, bukan hanya yang diubah dari sebuah preset). Visibilitas mengikuti dasbor: sebuah kunci API dapat mengakses preset milik penggunanya sendiri ditambah preset yang dibagikan oleh pemilik tim pengguna tersebut, dan token layanan tim dapat mengakses preset milik pemilik tim.
GET https://obfuscator.io/api/v1/presets/vm-default
GET https://obfuscator.io/api/v1/presets/production
| Status | Arti |
|---|---|
| 200 | Presetnya. |
| 400 | Format nama tidak valid (1-20 karakter, huruf a-z, angka, tanda hubung, atau garis bawah, diawali huruf atau angka), atau version tidak didukung. |
| 401 | Kunci API tidak ada, tidak valid, atau kedaluwarsa. |
| 403 | Akun ditangguhkan, tidak ada langganan aktif, atau paket tanpa akses API. |
| 404 | Tidak ada preset bawaan dengan nama ini pada versi yang diminta, dan tidak ada preset kustom dengan alias ini yang terlihat oleh kunci tersebut. |
| 429 | Terkena pembatasan laju; permintaan ini berbagi kuota per pengguna dan per IP yang dijelaskan di Batas dan kegagalan. |
| 500 | Pencarian preset gagal di server. Coba lagi nanti. |
Error berbentuk {"error": "..."}. Contoh penggunaan untuk paket javascript-obfuscator dan CLI-nya ada di Menggunakan Paket NPM.
Batas dan kegagalan
Batas paket berlaku untuk ukuran sumber dan penggunaan. Jaga agar seluruh isi JSON yang diserialisasi, termasuk escaping dan opsi, tetap di bawah 4.4 MB. Sumber yang lebih besar memerlukan unggahan sementara, yang tersedia pada Team dan Business hanya melalui paket javascript-obfuscator. Periksa batas paket Anda saat ini di dasbor.
API mengizinkan 30 permintaan per menit per pengguna, dibagi di antara semua kuncinya, dan 100 permintaan per menit per IP. Permintaan preset dihitung dalam kuota yang sama dengan permintaan obfuskasi.
Pembatasan laju, kegagalan kuota, dan stream yang terputus harus menghentikan build. Ulangi dengan sengaja; permintaan berulang dapat memakai penggunaan tambahan. Jangan menerbitkan keluaran parsial.
