본문으로 건너뛰기

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_keyAccessSecret(비밀 키)는 로그인 후 인터페이스 관리-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, -, _, ., ~인코딩 안 함abc123abc123
공백%20로 인코딩a ba%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을 반환하고 오류 발생 시 해당 오류 코드를 반환합니다010001001
messageString오류 설명 메시지로, 인터페이스 성공 시 "Success"를 반환합니다over-rate-limit
errorsObject일부 오류의 경우 이 필드를 통해 더 구체적인 오류 설명을 제공합니다
request_idString요청 ID로, 주로 문제 해결 지원에 사용됩니다039ecdca-44d5-430f-8521-020f4953bcc5