Ana içeriğe geç

API Referansı

Her Notus Network Node'u içerisinde REST API bulundurur. Bu şekilde veri paylaşımı ve veri alımı hızlı bir şekilde yapılır. Request x-www-form-urlencoded ve JSON formatlarında yapılabilir.

Dinlenen Portlar

Farklı portlar ile farklı layerlar ve networkler dinlenir. Bu portların kullanımı aşağıdaki örneklerde görülebilir.

Verilen portlar sadece varsayılan portlardır. Node açılırken bu varsayılan portları değiştirebilirsiniz.

Varsayılan Port Numarası: 5000

  • Layer1

    • Mainnet: Varsayılan Port + 0
    • Testnet: Varsayılan Port + 1
    • Devnet: Varsayılan Port + 2
  • Layer2

    • Mainnet: Varsayılan Port + 100
    • Testnet: Varsayılan Port + 101
    • Devnet: Varsayılan Port + 102
  • Layer3

    • Mainnet: Varsayılan Port + 200
    • Testnet: Varsayılan Port + 201
    • Devnet: Varsayılan Port + 202
  • Layer4

    • Mainnet: Varsayılan Port + 300
    • Testnet: Varsayılan Port + 301
    • Devnet: Varsayılan Port + 302
  • Layer5

    • Mainnet: Varsayılan Port + 400
    • Testnet: Varsayılan Port + 401
    • Devnet: Varsayılan Port + 402
  • Layer6

    • Mainnet: Varsayılan Port + 500
    • Testnet: Varsayılan Port + 501
    • Devnet: Varsayılan Port + 502
  • Layer7

    • Mainnet: Varsayılan Port + 600
    • Testnet: Varsayılan Port + 601
    • Devnet: Varsayılan Port + 602
  • Layer8

    • Mainnet: Varsayılan Port + 700
    • Testnet: Varsayılan Port + 701
    • Devnet: Varsayılan Port + 702
  • Layer9

    • Mainnet: Varsayılan Port + 800
    • Testnet: Varsayılan Port + 801
    • Devnet: Varsayılan Port + 802
  • Layer10

    • Mainnet: Varsayılan Port + 900
    • Testnet: Varsayılan Port + 901
    • Devnet: Varsayılan Port + 902

Nasıl Get Requesti Kullanılır?

GET tipinde requestler atmak için örnek;

Her objeye uygun JS/TS ve C# kodları.

Javascript / Typescript

export function GetRequest(url) {
return fetch(url).then(async (response) => {
if (!response.ok) {
throw new Error(response.statusText);
}
return JSON.stringify(await response.json());
});
}
export function GetRequest(url: string): Promise<string> {
return fetch(url).then(async (response) => {
if (!response.ok) {
throw new Error(response.statusText);
}
return JSON.stringify(await response.json());
});
}

C#

public static async Task<string> Get(string UrlAddress, int TimeOut = 0, bool UseTimeoutAsSecond = true)
{
try
{
using (var client = new HttpClient())
{
if (TimeOut > 0)
{
client.Timeout = (UseTimeoutAsSecond == true ? TimeSpan.FromSeconds(TimeOut * 1000) : TimeSpan.FromMilliseconds(TimeOut));
}
HttpResponseMessage response = await client.GetAsync(UrlAddress);
if (response.IsSuccessStatusCode)
{
HttpContent responseContent = response.Content;
return await responseContent.ReadAsStringAsync();
}
}
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
return string.Empty;
}

Nasıl Post Requesti Kullanılır?

POST tipinde requestler atmak için örnek;

Her objeye uygun JS/TS ve C# kodları.

Javascript / Typescript

export function PostRequest(url, object) {
return fetch(url, {
method: "POST",
body: new URLSearchParams({
data: JSON.stringify(object),
}),
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
}).then(async (response) => {
if (!response.ok) {
throw new Error(response.statusText);
}
return JSON.stringify(await response.json());
});
}
export function PostRequest<T>(url: string, object: T): Promise<string> {
return fetch(url, {
method: "POST",
// x-www-form-urlencoded
body: new URLSearchParams({
data: JSON.stringify(object),
}),
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
}).then(async (response) => {
if (!response.ok) {
throw new Error(response.statusText);
}
return JSON.stringify(await response.json());
});
}

C#

public static async Task<string> Post(string UrlAddress, Dictionary<string, string> PostData, int TimeOut = 0, bool UseTimeoutAsSecond = true)
{
using (HttpClient client = new HttpClient())
{
if (TimeOut > 0)
{
client.Timeout = (UseTimeoutAsSecond == true ? TimeSpan.FromSeconds(TimeOut * 1000) : TimeSpan.FromMilliseconds(TimeOut));
}

HttpResponseMessage response = await client.PostAsync(UrlAddress, new FormUrlEncodedContent(PostData));
if (response.IsSuccessStatusCode)
{
HttpContent responseContent = response.Content;
return await responseContent.ReadAsStringAsync();
}
}
return string.Empty;
}

Yol Listesi


Node

TipYolAçıklama
GET/onlineNode'un online durumunu gösterir.
GET/nodeTüm tiplerdeki node listesini gösterir.
GET/masterMaster tipinde Node'ların listesini gösterir.
GET/main Main tipinde Node'ların listesini gösterir.
GET/replicant Replicant tipinde Node'ların listesini gösterir.

Metrikler

TipYolAçıklama
GET/metrics/nodeKaç Node'un var olduğunu gösterir.
GET/metrics/masterKaç Master Node'un var olduğunu gösterir.
GET/metrics/mainKaç Main Node'un var olduğunu gösterir.
GET/metrics/replicantKaç Replicant Node'un var olduğunu gösterir.
GET/metrics/blockKaç tane blok olduğunu gösterir.

Blok Zinciri

TipYolParametrelerAçıklama
GET/block/summarySon blok hakkında bilgi verir.
GET/block/lastSon bloğun içeriğini gösterir.
GET/block/hash/{uuid}Block UUIDUUID değerinin verildiği blok hash değerini gösterir.
GET/block/status/{uuid}Block UUIDUUID değerinin verildiği bloğun durumunu gösterir.
GET/currency/listBütün kullanılabilir para birimlerini gösterir.
GET/info/genesisGenesis blok bilgisini verir.
GET/info/transferŞu anki işlemlerin ücret bilgisini verir.
GET/info/reserveNotus Token'nin reserve edilmiş miktarını verir.

Cüzdan

TipYolParametrelerAçıklama
GET/balance/{walletKey}Cüzdan AnahtarıCüzdan anahtarının verildiği cüzdanın bakiye bilgisini verir.

İşlem

info

Airdrop sadece Testnet ve Devnet için kullanılabilir.

TipYolParametrelerAçıklama
POST/send?data="preTranfer"preTransfer YapısıTransfer işlemini Node'a gönderir.
GET/transaction/status/{uuid}İşlem UUIDUUID değerinin verildiği işlem durumunu gösterir.
GET/airdrop/{walletKey}Cüzdan AnahtarıCüzdan anahtarının verildiği cüzdana airdrop işlemi yapar.

NFT

TipYolParametrelerAçıklama
POST/storage/file/new?data="fileMetadata"fileMetadataYeni bir dosya oluşturmak için gerekli UUID'yi verir.
POST/storage/file/update?data="byteData"byteData, fileUUIDfileUUID'si verilen dosyanın n 'inci byteArray'ini alır.
GET/storage/file/status/{uuid}Dosya UUIDUUID değerinin verildiği dosyanın işlem durumunu gösterir.