Zum Hauptinhalt springen

2.1 Allgemeine Hinweise

2.1.1 Zugriffsadresse​

Testumgebung
Produktivumgebunghttps://api.racent.com/

2.1.2 Signaturauthentifizierung der Schnittstelle​

Die Schnittstelle verwendet einen auf API-Signatur basierenden Authentifizierungsmechanismus, der die Integrität und Sicherheit der Anfragen gewährleistet. Bei jedem Aufruf der Schnittstelle müssen Signaturparameter mitgeführt werden; der Server überprüft die Korrektheit der Signatur.

Öffentliche Parameter​

Die folgenden Parameter müssen im Query String jeder Schnittstellenanfrage enthalten sein:

ParameternameParametertypBeschreibungBeispielwert
access_keyStringKonto-ID zur Identifizierung des Aufrufers1000000059
signature_nonceStringEindeutige Zufallszahl für die Signatur zur Verhinderung von Replay-Angriffen,
bei jeder Anfrage muss ein anderer Zufallswert verwendet werden
2206561-6450-430e-8b0a-26980754c0de
timestampStringZeitstempel der Anfrage (Einheit: Sekunden)1673418729
signature_versionStringVersion des Signaturalgorithmus, fest auf 1.01.0
signature_methodStringSignaturalgorithmus, fest auf md5md5
signatureStringSignaturwert dieser Anfrage, berechnet aus anderen Parametern und dem Schlüssel85ef54421c69edeb098c7b557c6c5cd5
Hinweis:
  • access_key und AccessSecret (Schlüssel) sind nach der Anmeldung unter Schnittstellenverwaltung – API-Zugangsdaten erhältlich.
  • signature_nonce Es wird empfohlen, eine UUID oder eine ausreichend zufällige Zeichenfolge zu verwenden, um die Eindeutigkeit jeder Anfrage sicherzustellen.
  • timestamp Anfragen, deren Abweichung von der Serverzeit einen bestimmten Bereich überschreitet (z. B. 5 Minuten), werden abgelehnt.

Signaturmechanismus​

Schritt 1: Kanonische Anfragezeichenfolge erstellen​

1. Parameter sortieren​

Alle öffentlichen Parameter (außer signature) und die benutzerdefinierten Schnittstellenparameter werden in aufsteigender lexikografischer Reihenfolge der Parameternamen sortiert.

2. Parameter kodieren​

Name und Wert jedes Parameters werden mit UTF-8 kodiert und gemäß den RFC3986-Regeln URL-kodiert:

  • Nicht zu kodierende Zeichen: A-Z a-z 0-9 - _ . ~
  • Andere Zeichen (wie Leerzeichen, /, ?, = usw.) müssen im Format %XX kodiert werden, z. B. wird ein Leerzeichen als %20 kodiert.
3. Parameter verketten​
  • Verwenden Sie =, um den kodierten Parameternamen und den Parameterwert zu verbinden.
  • Verwenden Sie &, um alle Parameterpaare zu verbinden; die lexikografische Reihenfolge bleibt erhalten.

Die so erhaltene Zeichenfolge wird als stringToSign bezeichnet.


Schritt 2: Signaturzeichenfolge erstellen und Signatur berechnen​

Je nach Anfragetyp wird die Signatur wie folgt berechnet:

GET 请求
signature = md5(AccessSecret + md5( HTTPMethod + stringToSign ))
POST / PUT 请求(含 Body 参数)
signature = md5(AccessSecret + md5( HTTPMethod + stringToSign ) + md5( jsonStringToBody ))
Hinweis:
  • HTTPMethod muss in Großbuchstaben geschrieben werden, z. B. GET, POST
  • jsonStringToBody ist der unformatierte JSON-String des Request-Bodys (Leerzeichen und Zeilenumbrüche müssen entfernt und Felder sortiert werden)
  • Das + in der Formel bedeutet Zeichenfolgenverknüpfung und nimmt nicht an der Berechnung teil

Parameter-Encoding-Regeln (RFC3986)​

ZeichentypVerarbeitungsweiseBeispiel
A-Z, a-z, 0-9, -, _, ., ~Nicht kodiertabc123 → abc123
LeerzeichenKodiert als %20a b → a%20b
Andere ASCII ZeichenKodiert als %XX (hexadezimal)" → %22

GET-Anfragebeispiel​

Angenommen:

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

Schritt 1: stringToSign konstruieren​

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

Schritt 2: Signatur berechnen​

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

Endgültige Anforderungs-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-Anforderungsbeispiel (mit Body)​

Angenommen, der Body lautet:

{"domain":"example.com"}

Der MD5-Wert lautet: 640c69595341436be9b0d1516d3d37ac

Schritt 1: stringToSign konstruieren​

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

Schritt 2: Signatur berechnen​

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

Endgültige Anfrage-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 API-Ratenbegrenzung​

Standard-Ratenbegrenzungsregeln: Für denselben Benutzer, der auf dieselbe API zugreift, gelten folgende Beschränkungen:

  • 60 Mal pro Minute
  • 500 Mal pro Stunde
  • 1000 Mal pro Tag

2.1.4 API-Rückgabeparameter​

Parameterbeschreibung​

ParameternameParametertypBeschreibungBeispielwert
dataObjectGeschäftsdaten. Bei einem API-Fehler ist der Rückgabewert null
codeIntFehlercode: 0 bei Erfolg, entsprechender Fehlercode bei Fehler0, 1000, 1001
messageStringFehlerbeschreibung. Bei erfolgreicher API-Anfrage wird "Success" zurückgegebenover-rate-limit
errorsObjectBei bestimmten Fehlern werden über dieses Feld detailliertere Fehlerbeschreibungen bereitgestellt
request_idStringAnfrage-ID, dient hauptsächlich zur Unterstützung bei der Problembehebung039ecdca-44d5-430f-8521-020f4953bcc5