Ana içeriğe geç

2.1 Genel Açıklama

2.1.1 Erişim Adresi​

Test Ortamı
Gerçek Ortamhttps://api.racent.com/

2.1.2 Arayüz İmza Kimlik Doğrulaması​

Arayüz, API imzasına dayalı bir kimlik doğrulama mekanizması kullanır; bu, isteğin bütünlüğünü ve güvenliğini sağlar. Arayüz her çağrıldığında imza parametresi taşınmalıdır; sunucu imzanın doğruluğunu doğrular.

Genel Parametreler​

Aşağıdaki parametreler, her arayüz isteğinde Query String içinde mutlaka yer almalıdır:

Parametre AdıParametre TürüAçıklamaÖrnek Değer
access_keyStringHesap kimliği; çağıran tarafın kimliğini belirtir1000000059
signature_nonceStringİmza için benzersiz rastgele sayı; tekrar saldırılarını önlemek amacıyla kullanılır,
her istekte farklı rastgele değer kullanılmalıdır
2206561-6450-430e-8b0a-26980754c0de
timestampStringİsteğin başlatıldığı zaman damgası (saniye cinsinden)1673418729
signature_versionStringİmza algoritması sürümü; sabit olarak 1.0'dır1.0
signature_methodStringİmza algoritması; sabit olarak md5'tirmd5
signatureStringBu isteğin imza değeri; diğer parametrelerden ve anahtardan hesaplanır85ef54421c69edeb098c7b557c6c5cd5
Açıklama:
  • access_key ve AccessSecret (anahtar), oturum açtıktan sonra Arayüz Yönetimi-API Erişim Kimlik Bilgileri bölümünden edinilebilir.
  • signature_nonce UUID veya yeterince rastgele bir dize kullanılması önerilir; her istekte benzersiz olduğundan emin olun.
  • timestamp Sunucu saatiyle belirli bir aralıktan (ör. 5 dakika) daha fazla fark olan istekler reddedilir. :::

İmza Mekanizması​

Birinci Adım: Standartlaştırılmış İstek Dizesini Oluşturma​

1. Parametre Sıralama​

Tüm ortak parametreleri (signature hariç) ve arayüze özel parametreleri parametre adına göre sözlük sırasına göre artan şekilde sıralayın.

2. Parametre Kodlama​

Her parametrenin adını ve değerini UTF-8 ile kodlayın ve RFC3986 kurallarına göre URL kodlaması uygulayın:

  • Kodlanmayan karakterler: A-Z a-z 0-9 - _ . ~
  • Diğer karakterler (ör. boşluk, /, ?, = vb.) %XX biçiminde kodlanmalıdır; örneğin boşluk %20 olarak kodlanır.
3. Parametreleri Birleştirme​
  • Kodlanmış parametre adı ile parametre değerini = ile bağlayın.
  • Tüm parametre çiftlerini & ile bağlayın ve sözlük sırasını koruyun.

Sonuçta elde edilen dizeye stringToSign adı verilir.


İkinci Adım: İmza Dizesini Oluşturma ve İmzayı Hesaplama​

İstek türüne göre imza hesaplama yöntemi aşağıdaki gibidir:

GET 请求
signature = md5(AccessSecret + md5( HTTPMethod + stringToSign ))
POST / PUT 请求(含 Body 参数)
signature = md5(AccessSecret + md5( HTTPMethod + stringToSign ) + md5( jsonStringToBody ))
Açıklama:
  • HTTPMethod büyük harf olmalıdır; örneğin GET, POST
  • jsonStringToBody, istek Body'sinin ham JSON dizesidir (boşluklar ve satır sonları kaldırılmalı ve alanlar sıralanmalıdır)
  • Formüldeki +, dize birleştirmeyi ifade eder ve hesaplamaya katılmaz

Parametre Kodlama Kuralları (RFC3986)​

Karakter Türüİşleme YöntemiÖrnek
A-Z, a-z, 0-9, -, _, ., ~Kodlanmazabc123 → abc123
Boşluk%20 olarak kodlanıra b → a%20b
Diğer ASCII karakterler%XX (onaltılık) olarak kodlanır" → %22

GET İstek Örneği​

Varsayalım:

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

Adım1: stringToSign oluşturma​

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

Adım 2: İmzayı hesaplayın​

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

Nihai istek URL'si:​

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 İstek Örneği (Body ile)​

Body'nin şu olduğunu varsayalım:

{"domain":"example.com"}

MD5 değeri: 640c69595341436be9b0d1516d3d37ac

Adım 1: stringToSign oluşturma​

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

Adım 2: İmzayı hesaplayın​

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

Nihai İstek URL'si:​

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 Arayüz Hız Sınırlandırma​

Varsayılan hız sınırlandırma kurallarına göre, aynı kullanıcının aynı arayüze erişim limitleri şu şekildedir:

  • Dakikada 60 istek
  • Saatte 500 istek
  • Günde 1000 istek

2.1.4 Arayüz Dönüş Parametreleri​

Parametre Açıklaması​

Parametre AdıParametre TürüAçıklamaÖrnek Değer
dataObjectİş verisi; arayüz hata döndürürse değer null olur
codeIntHata kodu; başarılı olursa 0, hata olursa ilgili hata kodu döner0, 1000, 1001
messageStringHata açıklama bilgisi; arayüz başarılı olursa "Success" dönerover-rate-limit
errorsObjectBazı hatalarda bu alan aracılığıyla daha ayrıntılı hata açıklaması sağlanır
request_idStringİstek kimliği; esas olarak sorun gidermeye yardımcı olmak için kullanılır039ecdca-44d5-430f-8521-020f4953bcc5