Genel Bakış
Bu öneri, I2PControl için API2’yi özetlemektedir.
Bu öneri reddedildi ve uygulanmayacak çünkü geriye dönük uyumluluğu bozuyor. Ayrıntılar için tartışma konusunun bağlantısına bakın.
Geliştirici uyarısı!
Tüm RPC parametreleri artık küçük harfle olacak. Bu, API1 uygulamalarıyla geriye dönük uyumluluğu bozacaktır. Bunun nedeni API2 ve üstü kullanıcılarına mümkün olan en basit ve en tutarlı API’yi sağlamaktır.
API 2 Özellikleri
{
"id": "id",
"method": "method_name",
"params": {
"token": "auth_token",
"method_param": "method_parameter_value",
},
"jsonrpc": "2.0"
}
{
"id": "id",
"result": "result_value",
"jsonrpc": "2.0"
}
Parametreler
"id"
İstek numarası. Hangi isteğe hangi yanıtın verildiğini belirlemek için kullanılır.
"method_name"
Çağrılan RPC’nin adı.
"auth_token"
Oturum kimlik doğrulama belirteci. ‘authenticate’ çağrısı hariç her RPC ile sağlanması gerekir.
"method_parameter_value"
Yöntem parametresi. Bir yöntemin farklı seçeneklerini sunmak için kullanılır. ‘get’, ‘set’ ve bu tarz seçenekler gibi.
"result_value"
RPC’nin döndürdüğü değer. Türü ve içeriği metoda ve hangi metoda bağlıdır.
Önekler
RPC adlandırma şeması, farklı API uygulamaları için satıcı önekleriyle CSS’de nasıl yapıldığına benzer (i2p, kovri, i2pd):
XXX.YYY.ZZZ
i2p.XXX.YYY.ZZZ
i2pd.XXX.YYY.ZZZ
kovri.XXX.YYY.ZZZ
Satıcıya özel öneklerle ilgili genel amaç, bazı esneklik sağlamaktır ve diğer tüm uygulamaların yetişmesini beklemek zorunda kalmadan yenilik yapmalarına izin vermek. Bir RPC tüm uygulamalar tarafından gerçekleştirildiğinde, birden fazla öneki kaldırılabilir ve bir sonraki API sürümünde çekirdek bir RPC olarak dahil edilebilir.
Yöntem okuma kılavuzu
rpc.method
- parameter [parametre türü]: [null], [number], [string], [boolean], [array] veya [object]. [object], {anahtar:değer} haritası olur.
Döndürür:
"return_value" [string] // RPC çağrısı tarafından döndürülen değer
Yöntemler
authenticate - Doğru bir şifre sağlandığında, bu yöntem size daha fazla erişim için bir belirteç ve desteklenen API seviyelerinin bir listesini sağlar.
password [string]: Bu i2pcontrol uygulaması için şifre
Döndürür:
[object]
{
"token" : [string], // Diğer tüm RPC yöntemleriyle sağlanacak belirteç
"api" : [[int],[int], ...] // Desteklenen API seviyelerinin listesi.
}
control. - i2p’yi kontrol et
control.reseed - Reseed işlemine başla
- [nil]: Parametre gerekmiyor
Döndürür:
[nil]
control.restart - i2p örneğini yeniden başlat
- [nil]: Parametre gerekmiyor
Döndürür:
[nil]
control.restart.graceful - i2p örneğini nazikçe yeniden başlat
- [nil]: Parametre gerekmiyor
Döndürür:
[nil]
control.shutdown - i2p örneğini kapat
- [nil]: Parametre gerekmiyor
Döndürür:
[nil]
control.shutdown.graceful - i2p örneğini nazikçe kapat
- [nil]: Parametre gerekmiyor
Döndürür:
[nil]
control.update.find - BLOKE EDİCİ İmzalı güncellemeleri ara
- [nil]: Parametre gerekmiyor
Döndürür:
true [boolean] // İmzalı güncelleme mevcutsa doğru
control.update.start - Güncelleme sürecine başla
- [nil]: Parametre gerekmiyor
Döndürür:
[nil]
i2pcontrol. - i2pcontrol yapılandırın
i2pcontrol.address - i2pcontrol’un dinlediği IP adresini al/ayarla.
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
"0.0.0.0" [string]
* *set* [string]: "0.0.0.0" veya "192.168.0.1" gibi bir IP adresi olacak
Döndürür:
[nil]
i2pcontrol.password - i2pcontrol şifresini değiştirin.
- set [string]: Yeni şifreyi bu dizeye ayarlayın
Döndürür:
[nil]
i2pcontrol.port - i2pcontrol’un dinlediği portu al/ayarla.
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
7650 [number]
* *set* [number]: i2pcontrol'un dinlediği portu bu porta değiştirin
Döndürür:
[nil]
settings. - i2p örneği ayarlarını al/ayarla
settings.advanced - Gelişmiş ayarlar
- get [string]: Bu ayarın değerini al
Döndürür:
"setting-value" [string]
* *getAll* [null]:
Döndürür:
[object]
{
"setting-name" : "setting-value", [string]
".." : ".."
}
* *set* [string]: Bu ayarın değerini ayarla
* *setAll* [object] {"setting-name" : "setting-value", ".." : ".." }
Döndürür:
[nil]
settings.bandwidth.in - Gelen bant genişliği ayarları
settings.bandwidth.out - Giden bant genişliği ayarları
- get [nil]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
0 [number]
* *set* [number]: Bant genişliği sınırını ayarla
Döndürür:
[nil]
settings.ntcp.autoip - NTCP için IP otomatik algılama ayarını al
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
true [boolean]
settings.ntcp.hostname - NTCP sunucu adını al
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
"0.0.0.0" [string]
* *set* [string]: Yeni sunucu adını ayarla
Döndürür:
[nil]
settings.ntcp.port - NTCP portu
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
0 [number]
* *set* [number]: Yeni NTCP portunu ayarla.
Döndürür:
[nil]
* *set* [boolean]: NTCP IP otomatik algılama ayarla
Döndürür:
[nil]
settings.ssu.autoip - SSU için IP otomatik algılama ayarını yapılandırın
- get [nil]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
true [boolean]
settings.ssu.hostname - SSU sunucu adını yapılandırın
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
"0.0.0.0" [string]
* *set* [string]: Yeni SSU sunucu adını ayarla
Döndürür:
[nil]
settings.ssu.port - SSU portu
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
0 [number]
* *set* [number]: Yeni SSU portunu ayarla.
Döndürür:
[nil]
* *set* [boolean]: SSU IP otomatik algılama ayarla
Döndürür:
[nil]
settings.share - Bant genişliği paylaşım yüzdesini al
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
0 [number] // Bant genişliği paylaşım yüzdesi (0-100)
* *set* [number]: Bant genişliği paylaşım yüzdesini ayarla (0-100)
Döndürür:
[nil]
settings.upnp - UPNP’yi etkinleştir veya devre dışı bırak
- get [nil]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
true [boolean]
* *set* [boolean]: SSU IP otomatik algılama ayarla
Döndürür:
[nil]
stats. - i2p örneğinden istatistikler al
stats.advanced - Bu yöntem, örnek içinde tutulan tüm istatistiklere erişim sağlar.
- get [string]: Sağlanacak gelişmiş istatistiğin adı
- Optional: period [number]: İstenen istatistik için dönem
stats.knownpeers - Bilinen eşlerin sayısını döndürür
stats.uptime - Yönlendirici başlatıldığından itibaren geçen süreyi ms cinsinden döndürür
stats.bandwidth.in - Gelen bant genişliğini döndürür (ideal olarak son saniye için)
stats.bandwidth.in.total - Son yeniden başlatmadan bu yana alınan bayt sayısını döndürür
stats.bandwidth.out - Giden bant genişliğini döndürür (ideal olarak son saniye için)’
stats.bandwidth.out.total - Son yeniden başlatmadan bu yana gönderilen bayt sayısını döndürür’
stats.tunnels.participating - Şu anda katılım sağlanan tünel sayısını döndürür
stats.netdb.peers.active - Son zamanlarda iletişim kurduğumuz eşlerin sayısını döndürür
stats.netdb.peers.fast - ‘Hızlı’ eşlerin sayısını döndürür
stats.netdb.peers.highcapacity - ‘Yüksek kapasiteli’ eşlerin sayısını döndürür
stats.netdb.peers.known - Bilinen eşlerin sayısını döndürür
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
0.0 [number]
status. - i2p örneği durumunu al
status.router - Yönlendirici durumunu al
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
"status" [string]
status.net - Yönlendirici ağ durumunu al
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
0 [number]
/**
* 0 – OK
* 1 – TESTING
* 2 – FIREWALLED
* 3 – HIDDEN
* 4 – WARN_FIREWALLED_AND_FAST
* 5 – WARN_FIREWALLED_AND_FLOODFILL
* 6 – WARN_FIREWALLED_WITH_INBOUND_TCP
* 7 – WARN_FIREWALLED_WITH_UDP_DISABLED
* 8 – ERROR_I2CP
* 9 – ERROR_CLOCK_SKEW
* 10 – ERROR_PRIVATE_TCP_ADDRESS
* 11 – ERROR_SYMMETRIC_NAT
* 12 – ERROR_UDP_PORT_IN_USE
* 13 – ERROR_NO_ACTIVE_PEERS_CHECK_CONNECTION_AND_FIREWALL
* 14 – ERROR_UDP_DISABLED_AND_TCP_UNSET
*/
status.isfloodfill - i2p örneği şu anda bir floodfill mi
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
true [boolean]
status.isreseeding - i2p örneği şu anda yeniden tohumlanıyor mu
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
true [boolean]
status.ip - Bu i2p örneğinin algılanan genel IP’si
- get [null]: Bu parametrenin ayarlanmasına gerek yoktur.
Döndürür:
"0.0.0.0" [string]