문서
/

API 레퍼런스

API 레퍼런스

CLI 및 Node.js 빌드에는 공개 javascript-obfuscator 패키지를 사용하세요. 이 패키지는 스트리밍과 대용량 업로드를 처리합니다. REST를 직접 호출하는 클라이언트는 아래 프로토콜을 구현해야 합니다.

시청

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

YouTube에서 보기

설정 → API 키에서 API 키를 만드세요. Pro, Team 또는 Business 플랜이 필요합니다. 키는 서버나 CI 시크릿 저장소에 보관하고, 절대 브라우저 코드에 넣지 마세요. javascript-obfuscator 패키지는 키를 apiToken으로 받으며(CLI에서는 --pro-api-token), REST를 직접 호출하는 요청은 Authorization: Bearer 헤더에 키를 담아 보냅니다. Team 또는 Business 플랜에서는 팀 소유자가 API 키 생성 대화 상자에서 팀 서비스 키를 선택할 수 있습니다. 그렇게 만든 키는 개인이 아니라 팀에 속하므로 구성원이 떠나도 계속 동작합니다.

API 키 · NPM 패키지 사용하기

요청

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

code와 options를 담은 JSON을 보내세요. Pro 기능을 하나 이상 켜야 합니다. vmObfuscation: true 또는 parseHtml: true입니다. 재현 가능한 빌드를 위해 version 쿼리 매개변수를 고정하세요. 생략하면 최신 버전이 사용됩니다. 8.0.0 같은 정확한 버전이나 범위를 지정할 수 있습니다. ^8.0.0은 8.x의 새 마이너 및 패치 릴리스를, ~8.0.0은 8.0.x의 패치 릴리스를 따라가며, 범위는 일치하는 가장 높은 릴리스로 해석됩니다. 범위에는 Team 또는 Business 플랜이 필요합니다.

options에는 옵션 자체를 나열합니다. optionsPreset에 지정한 프리셋 이름은 적용되지 않습니다. 기본 제공 프리셋이든 사용자 지정 프리셋이든 프리셋으로 빌드하려면 별도 요청으로 프리셋 엔드포인트에서 옵션을 가져와 options로 보내세요.

팀 소유자가 버전이나 프리셋을 강제하면, 팀 구성원과 팀 서비스 키의 요청에서는 그것이 요청의 version이나 options보다 우선합니다. 팀에 버전 강제하기과 공유 프리셋을 참고하세요.

헤더값
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

코드

응답

본문은 줄바꿈으로 구분된 JSON(NDJSON)으로 읽으세요. 네트워크 읽기 한 번에 JSON 한 줄이나 UTF-8 문자 하나가 나뉘어 도착할 수 있습니다. 진행 상황 메시지는 완료를 뜻하지 않습니다. result 또는 chunk_end 메시지를 반드시 확인하고, warnings는 보관하세요.

작은 출력은 하나의 result 메시지로 도착합니다. 큰 출력은 chunk 메시지들과 그 뒤의 chunk_end로 도착합니다. 두 종료 메시지 모두 출력을 생성한 실제 난독화 도구 버전인 version을 담고 있습니다(범위를 요청했거나 팀이 버전을 강제할 때 유용합니다). warnings는 치명적이지 않은 난독화 경고를 { type, message, functionName? } 형태로 나열하며, 경고가 없으면 생략되므로 필드가 없으면 빈 목록으로 취급하세요. VM 빌드와 HTML 입력에는 소스 맵이 생성되지 않습니다. 일반 JavaScript를 sourceMap: true로 parseHtml 빌드하면 종료 메시지의 sourceMap 필드로, 크기가 크면 sourceMap 청크로 소스 맵이 반환됩니다.

애플리케이션 오류는 스트림 안의 error 메시지로 전달되며, 대개 HTTP 상태는 200입니다. HTTP 상태와 스트림으로 전달되는 오류를 모두 확인하세요. 인프라 및 업로드 엔드포인트는 2xx가 아닌 HTTP 응답을 반환할 수 있습니다.

코드

코드

JSON

Node.js (.mjs)

JavaScript

코드

프리셋

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

프리셋의 옵션을 난독화 요청의 options에 그대로 보낼 수 있는 형태로 반환합니다. 같은 Authorization: Bearer 헤더를 보내세요. 이름은 대소문자를 구분하지 않고 비교하며, 응답은 스트림이 아닌 단일 JSON 객체입니다. 아래 예시는 줄여서 표시했습니다.

  • 기본 제공 프리셋: {name}은 vm-default 같은 기본 제공 프리셋입니다(프리셋 선택 참고). version 쿼리 매개변수는 어느 난독화 도구 버전의 프리셋을 반환할지 선택합니다. 난독화 엔드포인트와 같은 값을 받으며, 생략하면 최신 버전이 사용됩니다. description과 updatedAt은 null입니다.
  • 사용자 지정 프리셋: {name}은 대시보드에서 사용자 지정 프리셋의 저장 대화상자에 지정한 API 별칭이며, options는 저장된 구성(프리셋에서 변경한 옵션만이 아니라 모든 옵션)입니다. 조회 범위는 대시보드와 같습니다. API 키는 해당 사용자 자신의 프리셋과 그 사용자의 팀 소유자가 공유한 프리셋을 조회하고, 팀 서비스 키는 소유자의 프리셋을 조회합니다.

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

JSON

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

JSON

상태의미
200프리셋입니다.
400이름 형식이 잘못되었거나(1-20자의 영문자 a-z, 숫자, 하이픈 또는 밑줄로 이루어지고 문자나 숫자로 시작해야 함), version이 지원되지 않습니다.
401API 키가 없거나, 유효하지 않거나, 만료되었습니다.
403계정이 정지되었거나, 활성 구독이 없거나, API 접근이 포함되지 않은 플랜입니다.
404요청한 버전에 이 이름의 기본 제공 프리셋이 없고, 이 키로 조회할 수 있는 사용자 지정 프리셋 중 해당 별칭을 가진 것도 없습니다.
429요청 한도를 초과했습니다. 이 요청은 제한 및 실패에 설명된 사용자별 및 IP별 한도를 함께 사용합니다.
500서버에서 프리셋 조회에 실패했습니다. 나중에 다시 시도하세요.

오류는 {"error": "..."} 형식입니다. javascript-obfuscator 패키지와 그 CLI의 사용 예시는 NPM 패키지 사용하기에 있습니다.

제한 및 실패

소스 크기와 사용량에는 플랜 한도가 적용됩니다. 이스케이프와 옵션을 포함해 직렬화된 JSON 본문 전체를 4.4 MB 미만으로 유지하세요. 이보다 큰 소스에는 임시 업로드가 필요하며, 임시 업로드는 Team 및 Business에서 javascript-obfuscator 패키지를 통해서만 사용할 수 있습니다. 현재 플랜 한도는 대시보드에서 확인하세요.

API는 사용자당 분당 30개 요청(해당 사용자의 모든 키가 함께 사용)과 IP당 분당 100개 요청을 허용합니다. 프리셋 요청은 난독화 요청과 같은 한도에 포함됩니다.

요청 한도 초과, 할당량 실패, 중단된 스트림이 발생하면 빌드를 중단해야 합니다. 재시도는 신중하게 하세요. 반복된 요청은 사용량을 추가로 소모할 수 있습니다. 일부만 생성된 출력은 배포하지 마세요.

테스트와 CI