Tham khảo API
Dùng gói công khai javascript-obfuscator cho bản dựng bằng CLI và Node.js. Gói này tự xử lý phản hồi dạng luồng và tải lên tệp lớn. Client gọi REST trực tiếp phải tự triển khai giao thức dưới đây.
Xem
Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets
Tạo khóa API trong Cài đặt → Khóa API. Cần có quyền truy cập Pro, Team hoặc Business. Giữ khóa trên máy chủ hoặc trong kho bí mật của CI, không bao giờ đặt trong mã chạy trên trình duyệt. Gói javascript-obfuscator nhận khóa qua apiToken (--pro-api-token trên CLI); một yêu cầu REST trực tiếp gửi khóa trong header Authorization: Bearer. Với gói Team hoặc Business, chủ sở hữu nhóm có thể đánh dấu Khóa dịch vụ của nhóm trong hộp thoại Tạo khóa API; khóa đó thuộc về nhóm chứ không thuộc về một cá nhân, nên vẫn hoạt động khi thành viên rời nhóm.
Yêu cầu
POST https://obfuscator.io/api/v1/obfuscate
Gửi JSON gồm code và options. Bật ít nhất một tính năng Pro: vmObfuscation: true hoặc parseHtml: true. Ghim tham số truy vấn version để bản dựng có thể lặp lại; nếu bỏ qua, phiên bản mới nhất sẽ được dùng. Tham số này nhận một phiên bản chính xác như 8.0.0, hoặc một phạm vi: ^8.0.0 theo các bản phát hành minor và patch mới của 8.x, ~8.0.0 theo các bản phát hành patch của 8.0.x, và một phạm vi sẽ được phân giải thành bản phát hành cao nhất khớp với nó. Phạm vi phiên bản yêu cầu gói Team hoặc Business.
options liệt kê chính các tùy chọn; tên preset trong optionsPreset không được áp dụng. Để tạo bản dựng với một preset, dù là có sẵn hay tùy chỉnh, hãy lấy tùy chọn của nó từ endpoint preset trong một yêu cầu riêng và gửi chúng dưới dạng options.
Nếu chủ sở hữu nhóm bắt buộc một phiên bản hoặc một preset, thiết lập đó sẽ ghi đè version hoặc options của yêu cầu đối với thành viên nhóm và khóa dịch vụ của nhóm. Xem Bắt buộc một phiên bản cho nhóm của bạn và Preset dùng chung.
| Header | Giá trị |
|---|---|
Content-Type | application/json |
Authorization | Bearer YOUR_API_KEY |
Phản hồi
Đọc body dưới dạng JSON phân tách bằng dòng mới (NDJSON). Một lần đọc mạng có thể cắt đôi một dòng JSON hoặc một ký tự UTF-8. Tiến trình không có nghĩa là đã hoàn tất: hãy chờ thông điệp result hoặc chunk_end, và giữ lại warnings.
Đầu ra nhỏ được gửi trong một thông điệp result duy nhất. Đầu ra lớn được gửi dưới dạng các thông điệp chunk, theo sau là chunk_end. Cả hai thông điệp kết thúc đều mang version, phiên bản obfuscator cụ thể đã tạo ra đầu ra (hữu ích khi bạn yêu cầu một phạm vi phiên bản hoặc nhóm bắt buộc một phiên bản). warnings liệt kê các cảnh báo làm rối không gây lỗi dưới dạng { type, message, functionName? } và bị lược bỏ khi không có cảnh báo nào, vì vậy hãy coi trường bị thiếu là một danh sách rỗng. Source map không được tạo cho bản dựng VM hoặc cho đầu vào HTML. Một bản dựng parseHtml với JavaScript thuần và sourceMap: true sẽ trả về source map trong trường sourceMap của thông điệp kết thúc, hoặc dưới dạng các chunk sourceMap khi nó lớn.
Lỗi của ứng dụng được gửi dưới dạng thông điệp error bên trong luồng, thường kèm HTTP 200. Hãy kiểm tra cả mã trạng thái HTTP lẫn lỗi trong luồng. Hạ tầng và các endpoint tải lên có thể trả về phản hồi HTTP không phải 2xx.
Node.js (.mjs)
Preset
GET https://obfuscator.io/api/v1/presets/{name}
Trả về các tùy chọn của một preset, sẵn sàng để gửi làm options của yêu cầu làm rối. Gửi cùng header Authorization: Bearer. Tên được so khớp không phân biệt chữ hoa chữ thường, và phản hồi là một đối tượng JSON duy nhất, không phải luồng. Các ví dụ dưới đây được rút gọn.
- Preset có sẵn:
{name}là một preset có sẵn nhưvm-default(xem Chọn preset). Tham số truy vấnversionchọn phiên bản obfuscator có preset được trả về; tham số này nhận cùng các giá trị như endpoint làm rối và mặc định là phiên bản mới nhất.descriptionvàupdatedAtcó giá trịnull. - Preset tùy chỉnh:
{name}là bí danh API được đặt trong hộp thoại lưu của một preset tùy chỉnh trong bảng điều khiển, vàoptionslà cấu hình đã lưu (mọi tùy chọn, không chỉ những tùy chọn đã thay đổi so với một preset). Phạm vi nhìn thấy giống như trong bảng điều khiển: một khóa API truy xuất được các preset của chính người dùng sở hữu nó cùng các preset do chủ sở hữu nhóm của người dùng đó chia sẻ, còn khóa dịch vụ của nhóm truy xuất được các preset của chủ sở hữu nhóm.
GET https://obfuscator.io/api/v1/presets/vm-default
GET https://obfuscator.io/api/v1/presets/production
| Trạng thái | Ý nghĩa |
|---|---|
| 200 | Preset. |
| 400 | Tên sai định dạng (từ 1 đến 20 ký tự, gồm chữ cái a-z, chữ số, dấu gạch nối hoặc dấu gạch dưới, bắt đầu bằng một chữ cái hoặc chữ số), hoặc version không được hỗ trợ. |
| 401 | Thiếu khóa API, khóa không hợp lệ hoặc đã hết hạn. |
| 403 | Tài khoản bị tạm ngưng, không có gói đăng ký đang hoạt động, hoặc gói không có quyền truy cập API. |
| 404 | Không có preset có sẵn nào mang tên này trong phiên bản được yêu cầu, và khóa không nhìn thấy preset tùy chỉnh nào có bí danh này. |
| 429 | Bị giới hạn tần suất; yêu cầu này dùng chung hạn mức theo người dùng và theo IP trong Giới hạn và lỗi. |
| 500 | Việc tra cứu preset gặp lỗi trên máy chủ. Hãy thử lại sau. |
Lỗi có dạng {"error": "..."}. Ví dụ sử dụng cho gói javascript-obfuscator và CLI của nó có trong Sử dụng gói NPM.
Giới hạn và lỗi
Giới hạn của gói áp dụng cho kích thước mã nguồn và mức sử dụng. Hãy giữ toàn bộ body JSON đã tuần tự hóa, kể cả phần ký tự thoát và tùy chọn, dưới 4.4 MB. Mã nguồn lớn hơn cần tải lên tạm thời, tính năng chỉ có trên Team và Business và chỉ thông qua gói javascript-obfuscator. Hãy xem giới hạn gói hiện tại của bạn trong bảng điều khiển.
API cho phép 30 yêu cầu mỗi phút cho mỗi người dùng, dùng chung giữa các khóa của họ, và 100 yêu cầu mỗi phút cho mỗi IP. Các yêu cầu preset được tính vào cùng hạn mức với các yêu cầu làm rối.
Giới hạn tần suất, lỗi hạn mức và luồng bị gián đoạn phải dừng bản dựng. Hãy thử lại một cách có chủ đích; một yêu cầu lặp lại có thể tiêu tốn thêm mức sử dụng. Không phát hành đầu ra chưa hoàn chỉnh.
