본문으로 건너뛰기

2.1 전반적인 설명

2.1.1 접속 주소​

테스트 환경
실제 환경https://api.racent.com/

2.1.2 인터페이스 서명 인증​

인터페이스는 API 서명 기반의 신원 인증 메커니즘을 사용하여 요청의 무결성과 보안성을 보장합니다. 인터페이스를 호출할 때마다 서명 매개변수를 반드시 전달해야 하며, 서버는 서명의 정확성을 검증합니다.

공통 매개변수​

다음 매개변수는 반드시 매 인터페이스 요청의 Query String에 포함되어야 합니다:

매개변수 이름매개변수 유형설명예시 값
access_keyString호출자 신원을 식별하는 데 사용되는 계정 ID1000000059
signature_nonceString재전송 공격을 방지하기 위한 서명 고유 난수로,
매 요청마다 서로 다른 난수 값을 사용해야 합니다
2206561-6450-430e-8b0a-26980754c0de
timestampString요청이 시작된 타임스탬프(단위: 초)1673418729
signature_versionString서명 알고리즘 버전으로, 1.0으로 고정됨1.0
signature_methodString서명 알고리즘으로, md5로 고정됨md5
signatureString다른 매개변수와 비밀 키로 계산된 이번 요청의 서명 값85ef54421c69edeb098c7b557c6c5cd5
설명:
  • access_key 및 AccessSecret(비밀 키)는 로그인 후 인터페이스 관리-API 접근 자격 증명에서 확인할 수 있습니다.
  • signature_nonce는 요청마다 고유하도록 UUID 또는 충분히 무작위적인 문자열을 사용할 것을 권장합니다.
  • timestamp는 서버 시간과의 차이가 일정 범위(예: 5분)를 초과하는 요청은 거부됩니다.

서명 메커니즘​

1단계: 정규화된 요청 문자열 구성​

1. 파라미터 정렬​

모든 공개 파라미터(signature 제외)와 인터페이스 사용자 정의 파라미터를 파라미터명 사전순 오름차순으로 정렬합니다.

2. 파라미터 인코딩​

각 파라미터의 이름과 값에 UTF-8 인코딩을 사용하고, RFC3986 규칙에 따라 URL 인코딩을 진행합니다:

  • 인코딩하지 않는 문자: A-Z a-z 0-9 - _ . ~
  • 기타 문자(예: 공백, /, ?, = 등)는 %XX 형식으로 인코딩해야 하며, 예를 들어 공백은 %20로 인코딩됩니다.
3. 파라미터 연결​
  • 인코딩된 파라미터명과 파라미터값을 =로 연결합니다
  • 모든 파라미터 쌍을 &로 연결하며 사전순을 유지합니다

최종적으로 생성된 문자열을 stringToSign이라고 부릅니다.


2단계: 서명 문자열을 구성하고 서명 계산​

요청 유형에 따라 서명 계산 방식은 다음과 같습니다:

GET 请求
signature = md5(AccessSecret + md5( HTTPMethod + stringToSign ))
POST / PUT 请求(含 Body 参数)
signature = md5(AccessSecret + md5( HTTPMethod + stringToSign ) + md5( jsonStringToBody ))
설명:
  • HTTPMethod는 반드시 대문자로 작성해야 합니다(예: GET, POST).
  • jsonStringToBody는 요청 Body의 원본 JSON 문자열입니다(공백과 줄바꿈을 제거하고 필드를 정렬해야 합니다).
  • 공식의 +는 문자열 연결을 의미하며, 연산에 사용되지 않습니다.

매개변수 인코딩 규칙(RFC3986)​

문자 유형처리 방식예시
A-Z, a-z, 0-9, -, _, ., ~인코딩 안 함abc123 → abc123
공백%20로 인코딩a b → a%20b
기타 ASCII 문자%XX(16진수)로 인코딩" → %22

GET 요청 예시​

가정:

  • access_key = "1000000059"
  • AccessSecret = "19938c89c13ddf5da7636333a5aa4c0e"
  • signature_nonce = "iobzx72w63"
  • timestamp = "1755597512"

Step1: stringToSign 구성​

access_key=1000000059&signature_method=md5&signature_nonce=iobzx72w63&signature_version=1.0&timestamp=1755597512

Step2: 서명 계산​

temp = md5("GET" + stringToSign)  // 结果为"9bc92e0f3e239dc628ebc416294422ba"
signature = md5(AccessSecret + temp) // 结果为"a33bdb81ea79eb4ebbac9da043309c00"

최종 요청 URL:​

https://api.racent.com/api/v1/domain/tld?access_key=1000000059&signature_nonce=iobzx72w63&timestamp=1755597512&signature_version=1.0&signature_method=md5&signature=a33bdb81ea79eb4ebbac9da043309c00

POST 요청 예시(Body 포함)​

Body가 다음과 같다고 가정합니다:

{"domain":"example.com"}

해당 MD5 값은 다음과 같습니다: 640c69595341436be9b0d1516d3d37ac

Step1: stringToSign 구성​

access_key=1000000059&signature_method=md5&signature_nonce=abjipo5ar5a&signature_version=1.0&timestamp=1755598851

Step2: 서명 계산​

temp = md5("POST" + stringToSign)  // 结果为 "5aba63e4af1b7a4080eaf47d0fc56efe"
signature = md5(AccessSecret + temp + "640c69595341436be9b0d1516d3d37ac") // 结果为 "29487fd8ae5b828415d05b691caf015c"

최종 요청 URL:​

https://api.racent.com/v1/domain/query-domain?access_key=1000000059&signature_nonce=abjipo5ar5a&timestamp=1755598851&signature_version=1.0&signature_method=md5&signature=29487fd8ae5b828415d05b691caf015c

2.1.3 인터페이스 속도 제한​

기본 속도 제한 규칙은 동일한 사용자가 동일한 인터페이스에 접근할 때 다음과 같이 호출 횟수를 제한합니다:

  • 분당 60회
  • 시간당 500회
  • 일일 1000회

2.1.4 인터페이스 반환 매개변수​

매개변수 설명​

매개변수 이름매개변수 타입설명예시 값
dataObject비즈니스 데이터로, 인터페이스 오류 발생 시 반환값은 null입니다
codeInt오류 코드로, 성공 시 0을 반환하고 오류 발생 시 해당 오류 코드를 반환합니다0,1000,1001
messageString오류 설명 메시지로, 인터페이스 성공 시 "Success"를 반환합니다over-rate-limit
errorsObject일부 오류의 경우 이 필드를 통해 더 구체적인 오류 설명을 제공합니다
request_idString요청 ID로, 주로 문제 해결 지원에 사용됩니다039ecdca-44d5-430f-8521-020f4953bcc5