# RESTful API v2

Kimlik doğrulama, ekosistem veri alımı, hata işleme, veritabanı tablosu işlemleri, sayfalar ve sözleşmelerin uygulanması dahil olmak üzere Weaver tarafından sağlanan tüm işlevler, IBAX'in REST API'si kullanılarak kullanılabilir.

REST API ile geliştiriciler, Weaver kullanmadan tüm platform işlevlerine erişebilir.

API komut çağrıları, "/api/v2/command/[param]" adresiyle yürütülür; burada "komut" komut adıdır ve "param" ek bir parametredir. İstek parametreleri 'Content-Type: x-www-form-urlencoded' formatında gönderilmelidir. Sunucu yanıtı sonucu JSON biçimindedir.

# Hata yönetimi

İstek başarıyla yürütülürse, "200" durum kodu döndürülür. Bir hata oluşursa, hata durumuna ek olarak aşağıdaki alanlara sahip bir JSON nesnesi döndürülür:

  • hata

Hata tanımlayıcısı.

  • mesaj

Bir hata durumunda metin döndürülür.

  • parametreler

Bir hata durumunda döndürülen metinde bulunabilecek hatanın ek parametreleri.

Yanıt örneği

400 (Kötü istek)

Content-Type: application/json

{
 "err": "E_INVALIDWALLET",
 "msg": "Wallet 1234-5678-9012-3444-3488 is not valid",
 "params": ["1234-5678-9012-3444-3488"]
}

# Hata listesi

E_CONTRACT

%s kontratı mevcut değil

E_DBNIL

Boş database

E_DELETEDKEY

Hesap adresi askıya alındı

E_ECOSYSTEM

Ekosistem "%d" mevcut değil

E_EMPTYPUBLIC

Hesap için geçersiz public key

E_KEYNOTFOUND

Hesap adresi bulunamadı

E_HASHWRONG

Yanlış hash

E_HASHNOTFOUND

Hash bulunamadı

E_HEAVYPAGE

Çok fazla sayfa yüklendi

E_INVALIDWALLET

Geçersiz cüzdan adresi "%s"

E_LIMITTXSIZE

Limit dışı bir işlemin boyutu

E_NOTFOUND

Sayfa veya menü içeriği bulunamadı

E_PARAMNOTFOUND

Parametre bulunamadı

E_PERMISSION

İzin yok

E_QUERY

Veritabanı sorgu hatası

E_RECOVERED

API'de panik hatası var. Panik hatası varsa bir hata döndürün. Bulunması ve düzeltilmesi gereken bir hatayla karşılaştığınız anlamına gelir.

E_SERVER

Server hatası. golang library işlevinde bir hata varsa, geri döner. Mesaj alanı, bir hata durumunda döndürülen metni içerir.

Herhangi bir komuta yanıt olarak bir E_SERVER hatası oluşabilir. Hatalı giriş parametreleri nedeniyle oluşursa, bunu ilgili bir hatayla değiştirebilirsiniz. Başka bir durumda, bu hata, daha ayrıntılı bir araştırma raporu gerektiren geçersiz işlem veya yanlış sistem yapılandırması bildirir.

E_SIGNATURE

Yanlış imza

E_STATELOGIN

%s ekosisteminin bir üyesi değil

E_TABLENOTFOUND

%s tablosu bulunamadı

E_TOKENEXPIRED

%s oturumunun süresi doldu

E_UNAUTHORIZED

Yetkisiz.

Giriş yapılmadıysa veya oturumun süresi dolduysa, getuid, login dışında herhangi bir komut E_UNAUTHORIZED error.

E_UNKNOWNUID Unknown UID

E_UPDATING

Düğüm blok zincirini güncelliyor

E_STOPPING

Düğüm Durdu

E_NOTIMPLEMENTED

Henüz uygulanmadı

E_BANNED

Hesap adresi %s içinde yasaklandı

E_CHECKROLE

Erişim reddedildi

# API'ler CLB tarafından kullanılamıyor

CLB düğümü için arabirim isteği kullanılamıyor:

  • metrics
  • txinfo
  • txinfoMultiple
  • appparam
  • appparams
  • appcontent
  • history
  • balance
  • block
  • maxblockid
  • blocks
  • detailed blocks
  • ecosystemparams
  • systemparams
  • ecosystems
  • ecosystemparam
  • ecosystemname
  • walletHistory
  • tx_record

# Kimlik doğrulama

Kimlik doğrulama için JWT token kullanılır. JWT belirtecini aldıktan sonra, her istek başlığına yerleştirilmelidir: Yetkilendirme: Taşıyıcı TOKEN_HERE.

# getuid

GET/ benzersiz bir değer döndürür, özel anahtarla imzalar ve ardından login komutunu kullanarak sunucuya geri gönderir.

Geçici bir JWT belirteci oluşturmak için, login çağrılırken belirteci Yetkilendirme'ye iletmeniz gerekir.

# İstek

GET /api/v2/getuid

# Cevap

  • uid

İmza numaraları.

  • token

Oturum açma sırasında geçici belirteç iletildi.

Geçici bir tokenın ömrü 5 saniyedir.

  • network_id

Sunucu identifier.

Yetkilendirme gerekli değilse, aşağıdaki bilgiler iade edilecektir:

  • expire

Son kullanma süresi.

  • ecosystem

Ecosystem ID.

  • key_id

Hesap adresi.

  • address

Cüzdan adresi XXXX-XXXX-.....-XXXX.

# Cevap example

200 (OK)

Content-Type: application/json

{
    "uid": "4999317241855959593",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9........I7LY6XX4IP12En6nr8UPklE9U4qicqg3K9KEzGq_8zE",
    "network_id": "4717243765193692211"
}

# Hatalı Cevap

E_SERVER

# Giriş

POST/ Kullanıcı kimliğinin doğrulanması.

Benzersiz bir değer almak ve imzalamak için önce getuid komutu çağrılmalıdır. Getuid'in geçici JWT belirtecinin istek başlığında iletilmesi gerekir.

İstek başarılı olursa yanıtta alınan belirteç Yetkilendirme'ye dahil edilir.

# İstek

POST /api/v2/login

  • [ecosystem]

Ecosystem ID.

Belirtilmezse, varsayılan olarak ilk ekosistemin kimliği.

  • [expire]

JWT tokenın ömrü, saniye cinsinden varsayılan olarak 28800.

  • [pubkey]

Hesabın onaltılık sistemde public keyi.

  • [key_id]

Hesap adresi XXXX-...-XXXX.

Public key blok zincirinde zaten depolanmışsa bu parametreyi kullanın. pubkey parametresi ile aynı anda kullanılamaz.

  • signature

Getuid aracılığıyla alınan UID imzası.

# Cevap

  • token

    JWT token.

  • ecosystem

    Ecosystem ID.

  • key_id

    Hesap adres ID

  • address

    Cüzdan adresi XXXX-XXXX-.....-XXXX.

  • notify_key

    Bildirim ID.

  • isnode

    Hesap adresinin düğümün sahibi olup olmadığı. Değer: true, false.

  • isowner

    Hesap adresinin ekosistemin yaratıcısı olup olmadığı. Değer: doğru, yanlış.

  • obs

    Kayıtlı ekosistemin CLB olup olmadığı. Değer: doğru, yanlış.

# Cevap example

200 (OK)

Content-Type: application/json

{
 "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9........AHDRDqDFBoWEHw-9lfIcLobehvNEeIYBB4BIb5J72aQ",
 "ecosystem":"1",
 "key_id":"54321",
 "address": "4321-....-2223"
}

# Hatalı Cevap

E_SERVER, E_UNKNOWNUID, E_SIGNATURE, E_STATELOGIN, E_EMPTYPUBLIC

# Servis komutları

# Versiyon

GET/ Geçerli sunucunun sürümünü döndürür.

Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

GET /api/v2/version

# Cevap example

200 (OK)
Content-Type: application/json
"1.2.6"

# Veri talebi işlevleri

# Balans

GET/ Mevcut ekosistemdeki hesap adresinin bakiyesini isteyin.

# İstek

GET /api/v2/balance/{wallet}

  • wallet

Adres tanımlayıcı. Herhangi bir biçimde int64, uint64, XXXX-...-XXXX belirtebilirsiniz. Bu adres, kullanıcının şu anda oturum açtığı ekosistemde sorgulanacaktır.

# Cevap

  • amount

    En küçük birimin hesap bakiyesi.

  • money

    Hesap bakiyesi.

# Cevap example

200 (OK)

Content-Type: application/json

{
 "amount": "877450000000000",
 "money": "877.45"
}

# Hatalı Cevap

E_SERVER, E_INVALIDWALLET

# Bloklar

GET/, her bloktaki işlemlerle ilgili ek bilgileri içeren bir liste döndürür. Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

GET /api/v2/blocks

  • block_id

Sorgulanacak başlangıç ​​bloğunun yüksekliği.

  • count

blok sayısı

# Cevap

  • Block Height

    Bloktaki işlemlerin listesi ve her işlemin ek bilgileri:

    • hash

      İşlem hash.

    • contract_name

      Kontrat Adı.

    • params

      Bir dizi sözleşme parametresi.

    • key_id

      İlk blok için, işlemi imzalayan ilk bloğun hesap adresi. Diğer tüm bloklar için, işlemi imzalayan hesabın adresi.

# Cevap Örneği

200 (OK)
Content-Type: application/json
{"1":
 [{"hash":"O1LhrjKznrYa0z5n5cej6p5Y1j5E9v/oV27VPRJmfgo=",
 "contract_name":"",
 "params":null,
 "key_id":-118432674655542910}]
}

# Hatalı Cevap

E_SERVER, E_NOTFOUND

# Detaylı bloklar

GET/, her bloktaki işlemlerle ilgili ayrıntılı ek bilgileri içeren bir liste döndürür.

Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

GET /api/v2/detailed_blocks

# Cevap

  • Blok Height
    • Başlık bloğu

      Blok başlığı aşağıdaki alanları içerir:

      • block_id

        Block height.

      • time

        Blok oluşturma timestamp.

      • key_id

        Bloğu imzalayan hesabın adresi.

      • node_position

        Honor node listesinde bloğu oluşturan node konumu.

      • version

        Blok yapısı sürümü.

    • hash

      Blok hash.

    • node_position

      Honor node listesinde bloğu oluşturan node konumu.

    • key_id

      Bloğu imzalayan hesabın adresi.

    • time

      Blok oluşturma timestamp.

    • tx_count

      Bloktaki işlem sayısı.

    • rollback_hash

      Block rollback hash.

    • mrkl_root

      Blok işlemlerinin Merkel ağacı.

    • bin_data

      Blok başlığının, bloktaki tüm işlemlerin, önceki blok hashinin ve bloğu oluşturan düğümün özel anahtarının serileştirilmesi.

    • sys_update

      Blok, sistem parametrelerini güncellemek için işlemler içeriyor mu?

    • Transaction

      Bloktaki işlemlerin listesi ve her işlemin ek bilgileri:

      • hash

        İşlem hash.

      • contract_name

        Kontrat adı.

      • params

        Kontrat parametreleri.

      • key_id

        İşlemi imzalayan hesabın adresi.

      • time

        İşlem oluşturma timestamp.

      • type

        İşlem tipi.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "1":
    {
        "header":
        {
            "block_id":1,
            "time":1551069320,
            "ecosystem_id":0,
            "key_id":-118432674655542910,
            "node_position":0,
            "version":1
        },
        "hash":"3NxhvswmpGvRdw8HdkrniI5Mx/q14Z4d5hwGKMp6KHI=",
        "ecosystem_id":0,
        "node_position":0,
        "key_id":-118432674655542910,
        "time":1551069320,
        "tx_count":1,
        "rollbacks_hash":"I2JHugpbdMNxBdNW1Uc0XnbiXFtzB74yD9AK5YI5i/k=",
        "mrkl_root":"MTZiMjY2NGJjOWY3MDAyODlhYjkyMDVhZDQwNDgxNzkxMjY1MWJjNjczNDkyZjk5MWI2Y2JkMjAxNTIwYjUyYg==",
        "bin_data":null,
        "sys_update":false,
        "gen_block":false,
        "stop_count":0,
        "transactions":[{
            "hash":"O1LhrjKznrYa0z5n5cej6p5Y1j5E9v/oV27VPRJmfgo=","contract_name":"",
            "params":null,
            "key_id":0,
            "time":0,
            "type":0
        }]
    }
}

# Hatalı Cevap

E_SERVER, E_NOTFOUND

# /data/{table}/{id}/{column}/{hash}

GET/ Belirtilen hash, belirtilen tablo, alan ve kayıttaki verilerle eşleşirse, bu istek verileri döndürür. Aksi takdirde, bir hata döndürülür.

Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

GET /data/{table}/{id}/{column}/{hash}

  • table

    Tablo ismi.

  • id

    Kayıt ID.

  • column

    Alan adı.

  • hash

    İstenen verilerin hash'i.

# Cevap

Ikili veri

# keyinfo

GET/, belirtilen adrese kayıtlı roller de dahil olmak üzere bir ekosistem listesi döndürür. Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

GET /api/v2/keyinfo/{key_id}

  • key_id

    Adres tanımlayıcı, herhangi bir biçimde int64, uint64, XXXX-...-XXXX şeklinde belirtebilirsiniz.

    Tüm ekosistemlerde sorgulanan istek.

# Cevap

  • ecosystem

    Ecosystem ID.

  • name

    ekosistem adı.

  • roles

    Kimlik ve ad alanlarına sahip roller listesi.

# Cevap Örneği

200 (OK)

Content-Type: application/json

[{
    "ecosystem":"1",
    "name":"platform ecosystem",
    "roles":[{"id":"1","name":"Admin"},{"id":"2","name":"Developer"}]
}]

# Hatalı Cevap

E_SERVER, E_INVALIDWALLET

# Metrikleri al

# keys

GET/ Hesap adreslerinin sayısını verir.

# İstek

GET /api/v2/metrics/keys

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "count": 28
}

# blocks

GET/ Blok sayısını verir.

# İstek

GET /api/v2/metrics/blocks

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
 "count": 28
}

# İşlemler

GET/ Toplam işlem sayısını verir.

# İstek

GET /api/v2/metrics/transactions

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
 "count": 28
}

# Ekosistemler

GET/ Ekosistemlerin sayısını verir.

# İstek

GET /api/v2/metrics/ecosystems

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "count": 28
}

# fullnodes

GET/, honor node sayısını döndürür.

GET /api/v2/metrics/fullnodes

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "count": 28
}

# Ekosistem

# ecosystemname

GET/, tanımlayıcısına göre ekosistemin adını döndürür. Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

GET /api/v2/ecosystemname?id=..

  • id

    Ekosistem ID.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "ecosystem_name": "platform_ecosystem"
}

# Hatalı Cevap

E_PARAMNOTFOUND

# ecosystems

GET/ Ekosistemlerin sayısını verir.

GET /api/v2/ecosystems/

# Cevap

  • number

Kurulan ekosistemlerin sayısı.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "number": 100,
}

# appparams/{appID}

GET/ Geçerli veya belirtilen ekosistemdeki uygulama parametrelerinin bir listesini döndürür.

# İstek

GET /api/v2/appparams

  • [appid]

    Application ID.

  • [ecosystem]

    Ecosystem ID. Belirtilmezse, mevcut ekosistemin parametreleri döndürülür.

  • [names]

    Alınan parametrelerin listesi. Virgülle ayrılmış parametre adlarının listesini belirleyebilirsiniz. Örneğin: /api/v2/appparams/1?names=name,mypar.

# Cevap

  • list

    Each element in the array contains the following parameters:

    • name, parameter name;
    • value, parameter value;
    • conditions, permission to change parameters.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "list": [{
        "name": "name",
        "value": "MyState",
        "conditions": "true",
    },
    {
        "name": "mypar",
        "value": "My value",
        "conditions": "true",
    },
    ]
}

# Hatalı Cevap

E_ECOSYSTEM

# appparam/{appid}/{name}

GET/ Geçerli veya belirtilen ekosistemdeki {appid} uygulamasının {name} parametresiyle ilgili bilgileri döndürür.

# İstek

GET /api/v2/appparam/{appid}/{name}[?ecosystem=1]

  • appid

    Uygulama ID.

  • name

    İstenen parametrenin adı.

  • [ecosystem]

    Ekosistem Kimliği (isteğe bağlı parametre). Varsayılan olarak mevcut ekosistemi döndürür.

# Cevap

  • id

    Parametre ID.

  • name

    Parametre adı.

  • value

    Parametre değeri.

  • conditions

    Parametreleri değiştirme izni.

# Cevap Örneği

200 (OK) Content-Type: application/json

{
    "id": "10",
    "name": "par",
    "value": "My value",
    "conditions": "true"
}

# Hatalı Cevap

E_ECOSYSTEM, E_PARAMNOTFOUND

# ecosystemparams

GET/ Ekosistem parametrelerinin listesini döndürür.

# İstek

GET /api/v2/ecosystemparams/[?ecosystem=...&names=...]

  • [ecosystem]

    Ekosistem ID. Belirtilmezse mevcut ekosistem kimliği döndürülür.

  • [names] Virgülle ayrılmış istek parametrelerinin listesi. Örnek /api/v2/ecosystemparams/?names=name,currency,logo*.

# Cevap

  • list

    Dizideki her öğe aşağıdaki parametreleri içerir:

  • name

    Parametre adı.

  • value

    Parametre değeri.

  • conditions

    Parametreleri değiştirme izni.

# Cevap Örneği

200 (OK) Content-Type: application/json

{
    "list": [{
            "name": "name",
            "value": "MyState",
            "conditions": "true",
        },
        {
        "name": "currency",
        "value": "MY",
        "conditions": "true",
        },
    ]
}

# Hatalı Cevap

E_ECOSYSTEM

# ecosystemparam/{name}

GET/ Geçerli veya belirtilen ekosistemdeki {name} parametresiyle ilgili bilgileri döndürür.

# İstek

GET /api/v2/ecosystemparam/{name}[?ecosystem=1]

  • name

    İstek parametresinin adı.

  • [ecosystem]

    Ekosistem kimliğini belirtebilirsiniz. Varsayılan olarak, mevcut ekosistem id döndürülür.

# Cevap

  • name

    Parametre adı.

  • value

    Parametre değeri.

  • conditions

    Parametreleri değiştirme izni.

# Cevap Örneği

200 (OK) Content-Type: application/json

{
    "name": "currency",
    "value": "MYCUR",
    "conditions": "true"
}

# Hatalı Cevap

E_ECOSYSTEM

# tables/[?limit=…&offset=…]

GET/ Ofseti ve giriş sayısını ayarlayabileceğiniz mevcut ekosistemin tablolarının listesini döndürür.

# İstek

  • [limit]

    Giriş sayısı, varsayılan olarak 25.

  • [offset]

    Ofset, varsayılan olarak 0.

GET /api/v2/tables

# Cevap

  • count

    Tablodaki toplam girişler.

  • list

    Dizideki her öğe aşağıdaki parametreleri içerir:

  • name

    Ön eki olmayan tablo adı.

  • count

    Tablodaki giriş sayısı.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "count": "100"
    "list": [{
            "name": "accounts",
            "count": "10",
        },
        {
            "name": "citizens",
            "count": "5",
        },
    ]
}

# table/{name}

GET/ Mevcut ekosistem tarafından istenen tabloyla ilgili bilgileri döndürür. Aşağıdaki alan bilgilerini döndürür:

  • name

    Tablo ismi.

  • insert

    Yeni girişler ekleme izni.

  • new_column

    Yeni alanlar ekleme izni.

  • update

    Girişleri değiştirme izni.

  • columns

    Alanla ilgili bir dizi bilgi:

  • name

    Alan adı.

  • type

    Alan veri türü.

  • perm

    Bu alanın değerini değiştirme izni.

# İstek

GET /api/v2/table/mytable

  • name

    Ekosistem ön eki olmayan tablo adı.

# Cevap

  • name

    Ekosistem ön eki olmayan tablo adı.

  • insert

    Yeni girişler ekleme izni.

  • new_column

    Yeni alanlar ekleme izni.

  • update

    Girişleri değiştirme izni.

  • conditions

    Tablo yapılandırmasını değiştirme izni.

  • columns

    Alanla ilgili bir dizi bilgi:

  • name

    Alan adı.

  • type

    Alan veri türü.

  • perm

    Bu alanın değerini değiştirme izni.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "name": "mytable",
    "insert": "ContractConditions(`MainCondition`)",
    "new_column": "ContractConditions(`MainCondition`)",
    "update": "ContractConditions(`MainCondition`)",
    "conditions": "ContractConditions(`MainCondition`)",
    "columns": [{
        "name": "mynum", 
        "type": "number", 
        "perm":"ContractConditions(`MainCondition`)" 
        },
        {"name": "mytext", 
        "type": "text", 
        "perm":"ContractConditions(`MainCondition`)" 
        }
    ]
}

# Hatalı Cevap

E_TABLENOTFOUND

# list/{name}[?limit=…&offset=…&columns=…]

GET/ Geçerli ekosistemdeki belirtilen tablo girişlerinin listesini ve girişlerin ofsetini ve sayısını ayarlayabileceğiniz yeri döndürür.

# İstek

  • name

    Tablo adı.

  • [limit]

    Giriş sayısı, varsayılan olarak 25'tir.

  • [offset]

    Offset, 0 by default.

  • [columns]

    İstenen sütunların virgülle ayrılmış listesi. Belirtilmezse, tüm sütunlar döndürülür. Çağrı durumlarında, id sütunu döndürülür.

GET /api/v2/list/mytable?columns=name

# Cevap

  • count

    Toplam girişler.

  • list

    Dizideki her öğe aşağıdaki parametreleri içerir:

  • id

    Entry ID. İstenen sütunların sırası.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "count": "10",
    "list": [{
        "id": "1",
        "name": "John",
    },
    {
        "id": "2",
        "name": "Mark",
    },
    ]
}

# sections[?limit=…&offset=…&lang=]

GET/ Mevcut ekosistemin tablo bölümlerindeki girişlerin listesini ve girişlerin ofset ve sayısının ayarlanabileceği yeri döndürür.

role_access alanı bir roller listesi içeriyorsa ve mevcut rolü içermiyorsa, hiçbir kayıt döndürülmez. Başlık alanındaki veriler, istek başlığındaki Kabul Et-Dil dil kaynağı ile değiştirilecektir.

# İstek

  • [limit]

    Giriş sayısı, varsayılan olarak 25.

  • [offset]

    Offset, 0 by default.

  • [lang]

    Bu alan, dil kaynaklarını veya yerelleştirme kodunu belirtir, örneğin: en, zh. Belirtilen dil kaynakları bulamazsanız, örneğin: en-US, o zaman en dil kaynakları grubunda arama yapın.

GET /api/v2/sections

# Cevap

  • count

    Tablo bölümlerindeki toplam giriş sayısı.

  • list

    Dizideki her öğe, tablo bölümlerindeki tüm sütunların bilgilerini içerir.

# Cevap Örneği

200 (OK) Content-Type: application/json

{
    "count": "2",
    "list": [{
        "id": "1",
        "title": "Development",
        "urlpage": "develop",
        ...
        },
    ]
}

# Hatalı Cevap

E_TABLENOTFOUND

# row/{name}/{id}[?columns=]

#

GET/ Geçerli ekosistemde belirtilen tablonun girişini döndürür. Döndürülecek sütunları belirtebilirsiniz.

# İstek

  • name

    Tablo ismi.

  • id

    Giriş ID.

  • [columns]

    İstenen sütunların virgülle ayrılmış listesi. Belirtilmezse, tüm sütunlar döndürülür. Her durumda, id sütunu döndürülür.

GET /api/v2/row/mytable/10?columns=name

# Cevap

  • value

    İstenen sütunların bir dizi değeri

    • id

    Giriş ID.

    • Sequence of İsteked columns.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "values": {
        "id": "10",
        "name": "John",
    }
}

# Hatalı Cevap

E_NOTFOUND

# systemparams

GET/ Returns the list of platform parameters.

# İstek

GET /api/v2/systemparams/[?names=...]

  • [names]

    Virgülle ayrılmış bir istek parametreleri listesi. Örneğin, /api/v2/systemparams/?names=max_columns,max_indexes.

# Cevap

  • list

    Dizideki her öğe aşağıdaki parametreleri içerir:

    • name

      Parametre adı.

  • value

    Parametre değeri.

  • conditions

    Parametreyi değiştirme izinleri.

# Cevap Örneği

200 (OK) Content-Type: application/json

{
    "list": [{
        "name": "max_columns",
        "value": "100",
        "conditions": "ContractAccess("@1UpdateSysParam")",
    },
    {
        "name": "max_indexes",
        "value": "1",
        "conditions": "ContractAccess("@1UpdateSysParam")",
    },
    ]
}

# Hatalı Cevap

E_PARAMNOTFOUND

# history/{name}/{id}

GET/ Geçerli ekosistemde belirtilen tablodaki girişin değişiklik kaydını döndürür.

# İstek

  • name

    Tablo adı.

  • id

    Giriş ID.

# Cevap

  • list

    Öğeleri istenen girişin değiştirilmiş parametrelerini içeren bir dizideki her öğe.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "list": [{
        "name": "default_page",
        "value": "P(class, Default Ecosystem Page)"
        },
        {
        "menu": "default_menu"
        }
    ]
}

# interface/{page|menu|block}/{name}

GET/ Geçerli ekosistemin belirtilen tablosundaki (sayfalar, menü veya bloklar) ad alanının girişini döndürür.

GET /api/v2/interface/page/default_page

# İstek

  • name

    Tabloda belirtilen girdinin adı.

# Cevap

  • id

    Giriş ID.

  • name

    Giriş adı.

  • other

    Tablonun diğer sütunları.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "id": "1",
    "name": "default_page",
    "value": "P(Page content)",
    "default_menu": "default_menu",
    "validate_count": 1
}

# Hatalı Cevap

E_QUERY, E_NOTFOUND

# Contract functions

# contracts[?limit=…&offset=…]

GET/ Mevcut ekosistemdeki sözleşmelerin listesini verir ve girişlerin mahsup ve sayısını ayarlayabilir.

# İstek

  • [limit]

    Giriş sayısı, varsayılan olarak 25.

  • [offset]

    Ofset, varsayılan olarak 0.

GET /api/v2/contracts

# Cevap

  • count

    Toplam giriş sayısı.

  • list

    Dizideki her öğe aşağıdaki parametreleri içerir:

    • id

      Kontrat ID.

    • name

      Kontrat adı.

    • value

      Kontrat içeriği.

    • wallet_id

      Kontratı bağlı hesap adresi.

    • address

      Cüzdan adresi XXXX-...-XXXX kontrata bağlı.

    • ecosystem_id

      Kontratı ait olduğu ekosistemin ID.

    • app_id

      Kontratın ait olduğu uygulamanın ID.

    • conditions

      Kontratı değiştirme izinleri.

    • token_id

      Kontrat ücretini ödemek için kullanılan jetonun bulunduğu ekosistemin ID.

# Cevap Örneği

200 (OK)

Content-Type: application/json

 {
 "count": "10"
    "list": [{
        "id": "1",
        "name": "MainCondition",
        "token_id":"1",
        "wallet_id":"0",
        "value": "contract MainCondition {
                conditions {
                if(EcosysParam(`founder_account`)!=$key_id)
                {
                    warning `Sorry, you dont have access to this action.`
                }
                }
            }",
            "address":"0000-0000-0000-0000-0000",
            "conditions":"ContractConditions(`MainCondition`)"
        },
    ...
    ]
 }

# contract/{name}

GET/ Belirtilen kontratın ilgili bilgilerini döndürür. Varsayılan olarak, kontrat mevcut ekosistemde sorgulanır.

# İstek

  • name

    Kontrat adı.

GET /api/v2/contract/mycontract

# Cevap

  • id

    Sanal makinede kontrat ID.

  • name

    Ekosistem ID sahip kontrat adı "@1MainCondition".

  • state

    Kontratın ait olduğu ekosistemin ID.

  • walletid

    Kontrata bağlı hesap adresi.

  • tokenid

    Kontrat ücretini ödemek için kullanılan token bulunduğu ekosistemin ID.

  • address

    Cüzdan adresi XXXX-...-XXXX sözleşmeye bağlı.

  • tableid

    Kontrat tablosundaki kontratın giriş ID.

  • fields

    Dizi, kontrat veri bölümündeki her parametrenin yapı bilgilerini içerir:

    • name

    Parametre adı.

    • type

    Parametre türü.

    • optional

    Parametre seçeneği, true isteğe bağlı parametre anlamına gelir, false zorunlu parametre anlamına gelir.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "fields" : [
    {"name":"amount", "type":"int", "optional": false},
    {"name":"name", "type":"string", "optional": true}
    ],
    "id": 150,
    "name": "@1mycontract",
    "tableid" : 10,
}

# Hatalı Cevap

E_CONTRACT

# sendTX

POST/ Parametredeki işlemi alın ve işlem kuyruğuna ekleyin. İstek başarıyla yürütülürse, işlem hash döndürülür. Hash ile bloktaki ilgili işlemi elde edebilirsiniz. Bir hata yanıtı oluştuğunda, hash, hata metin mesajına dahil edilir.

# İstek

  • tx_key

    İşlem içeriği. Bu parametre ile herhangi bir isim belirleyebilir ve birden fazla işlem almayı destekleyebilirsiniz.

POST /api/v2/sendTx

Headers:
Content-Type: multipart/form-data
Parameters:
tx1 - transaction 1
txN - transaction N

# Cevap

  • hashes

    Array of transaction hashes:

  • tx1

    Hash of transaction 1.

  • txN

    Hash of transaction N.

# Cevap Örneği

200 (OK) Content-Type: application/json

{
    "hashes": {
    "tx1": "67afbc435634.....",
    "txN": "89ce4498eaf7.....",
}

# Hatalı Cevap

E_LIMITTXSIZE,E_BANNED

# txstatus

POST/ Belirtilen işlem hashinin blok id ve hata mesajını döndürür. Blok id ve hata metin mesajının dönüş değeri boşsa, işlem bloğa dahil edilmemiştir.

# İstek

  • data JSON list of transaction hashes.
    {"hashes":["contract1hash", "contract2hash", "contract3hash"]}
    

POST /api/v2/txstatus/

# Cevap

  • results Veri sözlüğünde, anahtar olarak işlem hash'i, değer olarak işlem detayı.

    hash

    İşlem hash.

    • blockid

    İşlem başarılı bir şekilde yürütülürse blok id döndürülür; işlem gerçekleştirilemezse, blok id 0'dır.

    • result

    $result değişkeni aracılığıyla işlem sonucunu döndürün.

    • errmsg

    İşlem gerçekleştirilemezse, bir hata metin mesajı döndürülür.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{"results":
    {
        "hash1": {
        "blockid": "3123",
        "result": "",
        },
        "hash2": {
        "blockid": "3124",
        "result": "",
        }
    }
}

# Hatalı Cevap

E_HASHWRONG, E_HASHNOTFOUND

# txinfo/{hash}

GET/ Blok kimliği ve onay sayısı da dahil olmak üzere, işlemle ilişkili belirtilen hash bilgilerini döndürür. İsteğe bağlı parametreler belirtilirse, kontrat adı ve ilgili parametreler de döndürülebilir.

# İstek

  • hash

    İşlem hash.

  • [contractinfo]

    Ayrıntılı kontrat parametresi tanımlayıcısı. İşlemle ilgili kontrat ayrıntılarını elde etmek için contractinfo=1 belirtin.

GET /api/v2/txinfo/c7ef367b494c7ce855f09aa3f1f2af7402535ea627fa615ebd63d437db5d0c8a?contractinfo=1

# Cevap

  • blockid

    İşlemin blok id içerir. Değer "0" ise, bu hash ile işlem bulunamaz.

  • confirm

    Blok blokidinin onay sayısı.

  • data

    contentinfo=1 belirtilirse, sözleşme detayları bu parametreye döndürülecektir.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "blockid": "9",
    "confirm": 11,
    "data": {
        "block": "9",
        "contract": "@1NewContract",
        "params": {
            "ApplicationId": 1,
            "Conditions": "true",
            "Value": "contract crashci4b {\n\t\t\tdata {}\n\t\t}"
        }
    }
}

# Hatalı Cevap

E_HASHWRONG

# txinfoMultiple/

GET/ Bir işlemle ilgili olarak belirtilen hash bilgilerini döndürür.

# İstek

  • hash

    İşlem hashlerinin listesi.

  • [contractinfo]

    Ayrıntılı kontrat parametresi tanımlayıcısı. İşlemle ilgili kontrat ayrıntılarını almak için contractinfo=1 belirtin.

    {"hashes":["contract1hash", "contract2hash", "contract3hash"]}
    

GET /api/v2/txinfoMultiple/

# Cevap

  • results

    Veri sözlüğünde, anahtar olarak işlem hash'leri ve değer olarak işlem ayrıntıları.

    doğramak

    İşlem hash.

    blockid

    İşlemi içeren blok kimliği. Değer "0" ise, bu hash ile işlem bulunamaz.

    onaylama

    Blok blokidinin onay sayısı.

    veri

    contentinfo=1 belirtilirse, sözleşme detayları bu parametreye döndürülecektir.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{"results":
    {
        "hash1": {
        "blockid": "3123",
        "confirm": "5",
        },
        "hash2": {
        "blockid": "3124",
        "confirm": "3",
        }
    }
 }

# Hatalı Cevap

E_HASHWRONG

# /page/validators_count/{name}

GET/ Belirtilen sayfayı doğrulamak için gereken düğüm sayısını döndürür.

# İstek

  • name

    Ekosistem id sahip sayfa adı: @ecosystem_id%%page_name%. Örneğin, "@1main_page".

GET /api/v2/page/validators_count/@1page_name

# Cevap

  • validate_count

    Belirtilen sayfayı doğrulamak için gereken node sayısı

# Cevap Örneği

200 (OK)
Content-Type: application/json
{"validate_count":1}

# Hatalı Cevap

E_NOTFOUND, E_SERVER

# content/menu|page/{name}

POST/ Şablon motoru işlemenin sonucu olan, belirtilen sayfa veya menü adının kodunun JSON nesne ağacını döndürür.

# İstek

  • name

    Sayfa veya menü adı.

POST /api/v2/content/page/default

# Cevap

  • menu

    İçerik/sayfa/… isteğinde bulunulurken sayfanın menü adı

  • menutree

    İçerik/sayfa/... isteğinde bulunulurken sayfa menüsünün bir JSON nesne ağacı

  • title–head for the menu content/menu/…

    İçerik/menü/...

  • tree

    Bir sayfanın veya menünün JSON nesne ağacı.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "tree": {"type":"......",
    "children": [
        {...},
        {...}
    ]
    },
}

# Hatalı Cevap

E_NOTFOUND

# content/source/{name}

POST/ Belirtilen sayfa adı kodunun JSON nesne ağacını döndürür. Herhangi bir işlevi yürütmez veya herhangi bir veri almaz. Döndürülen JSON nesne ağacı, sayfa şablonuna karşılık gelir ve görsel sayfa tasarımcısında kullanılabilir. Sayfa bulunamazsa, 404 hatası döndürülür. İstek """""""

  • name

    Sayfa adı.

# Cevap

POST /api/v2/content/source/default

  • tree

    Sayfanın bir JSON nesne ağacı.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "tree": {"type":"......",
    "children": [
        {...},
        {...}
    ]
    },
}

# Hatalı Cevap

E_NOTFOUND, E_SERVER

# content/hash/{name}

POST/ Belirtilen sayfa adının SHA256 hashi veya sayfa bulunamazsa 404 hatasını döndürür.

Bu istek için oturum açma yetkisi gerekli değildir. Diğer nodelara istekte bulunurken doğru hash almak için ekosistem, keyID, roleID, isMobile parametrelerini de iletmelisiniz. Diğer ekosistemlerden sayfa almak için, ekosistem idnin sayfa adının önüne eklenmesi gerekir. Örneğin: "@2sayfam".

# İstek

  • name

    Ekosistem id sahip sayfa adı.

  • ecosystem

    Ekosistem ID.

  • keyID

    Hesap adresi.

  • roleID

    Rol ID.

  • isMobile

    Mobil platformun parametre tanımlayıcısı.

POST /api/v2/content/hash/default

# Cevap

  • hex

    Hexadecimal hash.

# Cevap Örneği

200 (OK)
Content-Type: application/json
{
 "hash": "b631b8c28761b5bf03c2cfbc2b49e4b6ade5a1c7e2f5b72a6323e50eae2a33c6"
}

# Hatalı Cevap

E_NOTFOUND, E_SERVER, E_HEAVYPAGE

# İçerik

POST/ Şablon parametresinden sayfa kodunu döndüren JSON nesnelerinin sayısı. İsteğe bağlı parametre kaynağı "true" veya "1" olarak belirtilirse, JSON nesne ağacı alınan herhangi bir işlevi ve veriyi yürütmez. JSON nesne ağacı, görsel sayfa tasarımcısında kullanılabilir.

Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

  • template

    Sayfa kodu.

  • [source]

    true veya 1 olarak belirtilirse, JSON nesne ağacı, alınan herhangi bir işlevi ve veriyi yürütmez.

POST /api/v2/content

# Cevap

  • tree

    JSON nesne ağacı.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "tree": {"type":"......",
    "children": [
        {...},
        {...}
    ]
    },
}

# Hatalı Cevap

E_NOTFOUND, E_SERVER

# maxblockid

GET/ Geçerli nodedaki en yüksek bloğun idsini döndürür.

Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

GET /api/v2/maxblockid

# Cevap

  • max_block_id

    Geçerli nodedaki en yüksek bloğun id.

# Cevap Örneği

200 (OK)

Content-Type: application/json

{
    "max_block_id" : 341,
}

# Hatalı Cevap

E_NOTFOUND

# block/{id}

GET/ Belirtilen ID ile bloğun ilgili bilgilerini döndürür.

Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

  • id Block ID.

POST /api/v2/block/32

# Cevap

  • hash

    Hash of the block.

  • key_id

    Bloğu imzalayan hesabın adresi.

  • time

    Block generation timestamp.

  • tx_count

    Bloktaki toplam işlem sayısı.

  • rollbacks_hash

    Hash for block rollback.

  • node_position

    Honor node listesinde bloğun konumu.

# Cevap example

200 (OK)

Content-Type: application/json

{
    "hash": "1x4S5s/zNUTopP2YK43SppEyvT2O4DW5OHSpQfp5Tek=",
    "key_id": -118432674655542910,
    "time": 1551145365,
    "tx_count": 3,
    "rollbacks_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
    "node_position": 0,
}

# Hatalı Cevap

E_NOTFOUND

# avatar/{ecosystem}/{member}

GET/ Üye tablosundaki kullanıcının avatarını döndürür (oturum açmadan kullanabilirsiniz).

# İstek

  • ecosystem

    Ekosistem ID.

  • member

    Kullanıcının hesap adresi.

GET /api/v2/avatar/1/-118432674655542910

# Cevap

İçerik Tipi istek başlığının türü resimdir ve resim verileri yanıt gövdesinde döndürülür.

# Cevap example

200 (OK)
Content-Type: image/png

# Hatalı Cevap

E_NOTFOUND E_SERVER

# config/centrifugo

GET/ Centrifugo ana bilgisayar adresini ve portunu döndürür. Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

GET /api/v2/config/centrifugo

# Cevap

Yanıt biçimi http://adres:port şeklindedir, örneğin: http://127.0.0.1:8100.

# Hatalı Cevap

E_SERVER

# updnotificator

POST/ Henüz gönderilmemiş tüm mesajları centrifugo bildirim hizmetine gönderin. Yalnızca belirtilen ekosistemler ve üyeler için mesaj gönderin.

Bu istek için oturum açma yetkisi gerekli değildir.

# İstek

  • id

    Üye hesap adresi.

  • ecosystem

    Ekosistem ID.

POST /api/v2/updnotificator

# Cevap example

200 (OK)

Content-Type: application/json

{
    "result": true
}