API Çağrılarını Yapma
Bu kılavuz, Camino düğümlerinin sunduğu API'lere nasıl çağrılar yapılacağını açıklamaktadır.
Uç Nokta
Bir API çağrısı, bir URL olan bir uç noktaya yapılır. URL'nin temel yapısı her zaman:
[node-ip]:[http-port]
şeklindedir. Burada:
node-ip
, çağrının yapıldığı düğümün IP adresidir.http-port
, düğümün HTTP çağrılarını dinlediği porttur. Bu,http-port
ile tanımlanır (varsayılan değer9650
).
Örneğin, temel URL şu şekilde görünebilir: 127.0.0.1:9650
.
Her API’nin dokümantasyonu, bir kullanıcının API metodlarına erişmek için hangi uç noktaya çağrı yapması gerektiğini belirtir.
JSON RPC Biçimlendirilmiş API'ler
Birçok yerleşik API, istek ve yanıtlarını tanımlamak için formatını kullanır. Bu tür API'ler arasında Platform API ve X-Chain API bulunur.
JSON RPC İsteği Yapma
Diyelim ki, getTxStatus
metodunu çağırmak istiyoruz. X-Chain API dokümantasyonu, bu API için uç noktanın /ext/bc/X
olduğunu belirtir.
Bu, API çağrımızı göndereceğimiz uç noktanın şu olduğu anlamına gelir:
[node-ip]:[http-port]/ext/bc/X
X-Chain API dokümantasyonu, getTxStatus
metodunun imzasının:
(txID:bytes) -> (status:string)
şeklinde olduğunu belirtir. Burada:
txID
argümanı, durumunu almak istediğimiz işlemin kimliğidir.- Döndürülen değer
status
, ilgili işlemin durumudur.
Bu metodu çağırmak için:
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :4,
"method" :"avm.getTxStatus",
"params" :{
"txID":"2QouvFWUbjuySRxeX5xMbNCuAaKWfbk5FeEa2JmoF85RKLk2dD"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X
jsonrpc
, JSON RPC protokolünün sürümünü belirtir. (Uygulamada her zaman 2.0'dır)method
, çağırmak istediğimiz hizmeti (avm
) ve metodu (getTxStatus
) belirtir.params
, metoda iletilecek argümanları belirtir.id
, bu isteğin kimliğidir. İstek kimliklerinin benzersiz olması gerekir.
Hepsi bu kadar!
JSON RPC Başarılı Yanıt
Eğer çağrı başarılı olursa, yanıt şu şekilde görünecektir:
{
"jsonrpc": "2.0",
"result": {
"Status": "Success"
},
"id": 1
}
id
, bu yanıta karşılık gelen isteğin kimliğidir.result
,getTxStatus
'tan dönen değerlerdir.
JSON RPC Hata Yanıtı
Eğer çağrılan API metodu bir hata dönerse, yanıt result
yerine error
adlı bir alan içerecektir. Ayrıca, meydana gelen hata hakkında ek bilgiler içeren data
adlı bir ek alan bulunmaktadır.
Böyle bir yanıt şu şekilde görünebilir:
{
"jsonrpc": "2.0",
"error": {
"code": -32600,
"message": "[Buraya bir hata mesajı yazın]",
"data": [Hata hakkında ek bilgi içeren nesne]
},
"id": 1
}
Diğer API Biçimleri
Bazı API'ler, istek ve yanıtlarını biçimlendirmek için JSON RPC 2.0'dan farklı bir standart kullanabilir. Bu tür genişletmeler, çağrı yapılması ve yanıtların nasıl analiz edileceğine dair bilgileri dokümantasyonlarında belirtmelidir.
Bayt Gönderme ve Alma
Aksi belirtilmedikçe, bir API çağrısında/yanıtında gönderilen baytlar CB58 temsilinde, kontrol toplamı ile birlikte bir base-58 kodlamasıdır.