Dokümantasyon
/

API Referansı

API Referansı

CLI ve Node.js derlemeleri için herkese açık javascript-obfuscator paketini kullanın. Paket, akışları ve büyük yüklemeleri kendisi yönetir. Doğrudan REST istemcileri aşağıdaki protokolü uygulamalıdır.

İzle

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

YouTube'da izle

Ayarlar → API Anahtarları bölümünden bir API anahtarı oluşturun. Pro, Team veya Business erişimi gerekir. Anahtarı sunucunuzda veya CI gizli bilgi deposunda tutun, asla tarayıcı kodunda tutmayın. javascript-obfuscator paketi anahtarı apiToken olarak alır (CLI'da --pro-api-token); doğrudan bir REST isteği ise anahtarı Authorization: Bearer başlığında gönderir. Team veya Business planında ekip sahibi API Anahtarı Oluştur iletişim kutusunda Ekip servis anahtarı seçeneğini işaretleyebilir; bu anahtar bir kişiye değil ekibe aittir, bu yüzden üyeler ayrıldığında da çalışmaya devam eder.

API Anahtarları · NPM Paketini Kullanma

İstek

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

code ve options alanlarını içeren JSON gönderin. En az bir Pro özelliğini doğrudan ya da bir ön ayar aracılığıyla etkinleştirin: vmObfuscation: true veya parseHtml: true. Tekrarlanabilir derlemeler için version sorgu parametresini sabitleyin; bu parametre verilmezse en son sürüm kullanılır. Parametre 8.0.0 gibi tam bir sürümü ya da bir aralığı kabul eder: ^8.0.0 8.x'in yeni minor ve patch sürümlerini, ~8.0.0 ise 8.0.x'in patch sürümlerini izler; bir aralık, eşleşen en yüksek sürüme çözümlenir. Aralıklar Team veya Business planı gerektirir.

options, her seçeneği tek tek listelemek yerine bir ön ayarı adıyla belirtebilir: optionsPreset değerini vm-default gibi yerleşik bir ön ayara (bkz. Ön Ayar Seçimi) ya da özel bir ön ayarın API takma adına ayarlayın. Yerleşik bir ön ayar, istenen obfuscator sürümünün tanımladığı şekilde uygulanır; bir takma ad ise ön ayarlar uç noktasıyla aynı görünürlükle çözümlenir. Ön ayar temeli oluşturur ve istekteki diğer her seçenek onu geçersiz kılar. Bunlardan hiçbiri olmayan bir ad, isteğin bir hatayla başarısız olmasına neden olur.

Ekip sahibi bir sürümü veya bir ön ayarı zorunlu kılarsa, bu ayar ekip üyeleri ve ekip servis anahtarları için isteğin version veya options değerini geçersiz kılar. Bkz. Ekibiniz için sürümü zorunlu kılma ve Paylaşılan Ön Ayarlar.

BaşlıkDeğer
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

Kod

Yanıt

Gövdeyi satır sonuyla ayrılmış JSON (NDJSON) olarak okuyun. Bir ağ okuması bir JSON satırını veya bir UTF-8 karakterini bölebilir. İlerleme mesajı tamamlanma anlamına gelmez: bir result veya chunk_end mesajı bekleyin ve warnings alanını saklayın.

Küçük çıktı tek bir result mesajıyla gelir. Büyük çıktı chunk mesajları ve ardından gelen chunk_end ile gelir. Her iki son mesaj da çıktıyı üreten somut obfuscator sürümünü içeren version alanını taşır (bir aralık istediğinizde veya ekip bir sürümü zorunlu kıldığında işe yarar). warnings, ölümcül olmayan obfuscation uyarılarını { type, message, functionName? } biçiminde listeler ve uyarı yoksa hiç gönderilmez; bu yüzden eksik alanı boş bir liste olarak ele alın. VM derlemeleri ve HTML girdisi için source map üretilmez. sourceMap: true ile düz JavaScript'in parseHtml derlemesi, source map'i son mesajın sourceMap alanında ya da büyükse sourceMap parçaları olarak döndürür.

Uygulama hataları, genellikle HTTP 200 ile birlikte akış içinde error mesajları olarak gelir. Hem HTTP durum kodunu hem de akıştaki hataları kontrol edin. Altyapı ve yükleme uç noktaları 2xx dışında HTTP yanıtları döndürebilir.

Kod

Kod

JSON

Node.js (.mjs)

JavaScript

Kod

Ön ayarlar

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

Bir ön ayarın seçeneklerini, obfuscate isteğinin options alanı olarak gönderilmeye hazır şekilde döndürür. Aynı Authorization: Bearer başlığını gönderin. Ad büyük/küçük harfe duyarsız olarak eşleştirilir ve yanıt bir akış değil, tek bir JSON nesnesidir. Aşağıdaki örnekler kısaltılmıştır.

  • Yerleşik ön ayarlar: {name}, vm-default gibi yerleşik bir ön ayardır (bkz. Ön Ayar Seçimi). version sorgu parametresi, ön ayarı döndürülecek obfuscator sürümünü seçer; obfuscate uç noktasıyla aynı değerleri kabul eder ve varsayılan olarak en son sürümü kullanır. description ve updatedAt değerleri null olur.
  • Özel ön ayarlar: {name}, panelde özel bir ön ayarın kaydetme iletişim kutusunda belirlenen API takma adıdır; options ise kaydedilmiş yapılandırmadır (yalnızca bir ön ayardan değiştirilenler değil, tüm seçenekler). Görünürlük paneldekiyle aynıdır: bir API anahtarı, kullanıcısının kendi ön ayarlarını ve o kullanıcının ekip sahibinin paylaştıklarını çözümler; bir ekip servis anahtarı ise sahibin ön ayarlarını çözümler.

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

JSON

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

JSON

DurumAnlamı
200Ön ayarın kendisi.
400Ad hatalı biçimlendirilmiş (1-20 karakter, a-z harfleri, rakamlar, kısa çizgiler veya alt çizgiler; bir harf veya rakamla başlamalıdır) ya da version desteklenmiyor.
401API anahtarı eksik, geçersiz veya süresi dolmuş.
403Hesap askıya alınmış, etkin abonelik yok veya API erişimi olmayan bir plan.
404İstenen sürümde bu ada sahip yerleşik bir ön ayar yok ve bu takma ada sahip, anahtar tarafından görülebilen özel bir ön ayar da yok.
429Hız sınırına takıldı; istek, Limitler ve hatalar bölümündeki kullanıcı başına ve IP başına bütçeleri paylaşır.
500Ön ayar araması sunucuda başarısız oldu. Daha sonra yeniden deneyin.

Hatalar {"error": "..."} biçimindedir. javascript-obfuscator paketi ve CLI'ı için kullanım örnekleri NPM Paketini Kullanma sayfasındadır.

Kota

GET https://obfuscator.io/api/v1/quota

Planınızda ne kadar kullanım kaldığını döndürür; böylece bir derleme, yarıda başarısız olmak yerine başlamadan önce bir dosya kümesinin buna sığıp sığmadığını kontrol edebilir. Aynı Authorization: Bearer başlığını gönderin. Yanıt bir akış değil, tek bir JSON nesnesidir ve isteğin kendisi kullanıma sayılmaz.

JSON

  • remainingBytes: şu anda hâlâ kullanabileceğiniz miktar, yani bugün kalan ile bu ay kalandan küçük olanı. Planınızda limit yoksa null olur.
  • minBytesPerBuild: tek bir derleme için sayılan en düşük miktar.
  • daily ve monthly: her pencerede kullanılan bayt miktarı ve pencerenin limiti ya da planınızda böyle bir limit yoksa null. resetsAt, pencerenin yeniden başladığı zamandır ve ISO 8601 UTC biçimindedir: günlük pencere 00:00 UTC'de, aylık pencere her ay faturalandırma tarihinizde yeniden başlar.
  • Bir ekipte, bir üyenin anahtarı ekibin paylaşılan aylık kullanımını ve üyenin kendi günlük kullanımını bildirir. Bir ekip servis anahtarı ise ekip sahibinin kullanımını bildirir.

Bir derleme, hangi seçenekleri kullanırsa kullansın, kaynağının bayt cinsinden (UTF-8) boyutunu bir kez ve en az minBytesPerBuild olarak sayar. Çıktının boyutu sayılmaz. parseHtml ile derlenen bir HTML dosyasında yalnızca obfuscation için seçilen script'ler sayılır. Çalıştırmak üzere olduğunuz derlemeleri toplayın ve toplamı remainingBytes ile karşılaştırın.

Bir limit dolduğu için bir derleme reddedildiğinde, akıştaki error mesajı bir errorCode içerir:

JSON

errorCodeAnlamı
dailyLimitGünlük limit doldu. daily.resetsAt zamanından sonra yeniden deneyin.
monthlyLimitAylık limit doldu. monthly.resetsAt zamanından sonra yeniden deneyin ya da planınızı yükseltin.
usageCheckFailedKullanım kontrol edilemedi. Kısa bir süre sonra yeniden deneyin.

Bu üç kod kararlıdır. Diğer hatalar da bir errorCode içerebilir; buna güvenmeyin.

DurumAnlamı
200Kota.
401API anahtarı eksik, geçersiz veya süresi dolmuş.
403Hesap askıya alınmış, etkin abonelik yok veya API erişimi olmayan bir plan.
429Hız sınırına takıldı; istek, Limitler ve hatalar bölümündeki kullanıcı başına ve IP başına bütçeleri paylaşır.
500Kullanım okunamadı. Daha sonra yeniden deneyin.

Limitler ve hatalar

Plan limitleri kaynak boyutuna ve kullanıma uygulanır. Kaçış karakterleri ve seçenekler dahil olmak üzere serileştirilmiş JSON gövdesinin tamamını 4.4 MB altında tutun. Daha büyük kaynaklar geçici yüklemeler gerektirir; bunlar Team ve Business planlarında yalnızca javascript-obfuscator paketi üzerinden kullanılabilir. Güncel limitlerinizi ve kullanımınızı panelden veya kota uç noktasıyla kontrol edin. Kullanıma yalnızca obfuscate edilmiş kod döndüren derlemeler sayılır; hatayla sonuçlanan bir istek sayılmaz.

API, kullanıcı başına (kullanıcının tüm anahtarları arasında paylaşılır) dakikada 30 isteğe ve IP başına dakikada 100 isteğe izin verir. Ön ayar ve kota istekleri, obfuscation istekleriyle aynı bütçelerden sayılır.

Hız sınırlaması, kota hataları ve kesintiye uğrayan akışlar derlemeyi durdurmalıdır. Yeniden denemeleri bilinçli olarak yapın; tekrarlanan bir istek ek kullanım tüketebilir. Kısmi çıktı yayınlamayın.

Test ve CI