Skip to content

Repository files navigation

Nodesty Logo

Nodesty Java API İstemcisi

nodesty.com'un güçlü API'sine Java uygulamalarınızdan kolayca erişmenizi sağlayan modern, asenkron ve tip-güvenli (type-safe) bir istemci kütüphanesi.

Java 21License


🚀 Temel Özellikler

  • Reaktif ve Asenkron: RxJava3 ile tamamen asenkron, non-blocking operasyonlar.
  • 🔒 Tip-Güvenliği: Güçlü tip kontrolü sayesinde daha az çalışma zamanı hatası.
  • 🔄 Otomatik Serileştirme: Gson ile JSON ve Java nesneleri arasında otomatik dönüşüm.
  • ⚙️ Esnek Yapılandırma: Timeout, yeniden deneme sayısı, rate limit ve loglama seviyesi gibi kritik ayarları kolayca yönetin.
  • 📦 Modern Kaynak Yönetimi: AutoCloseable arayüzü ile try-with-resources bloğunda otomatik kaynak temizliği.

🛠️ Kurulum

Gradle (Kotlin DSL)

repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
dependencies {
implementation 'com.github.nodestycom:java-api-client:main-SNAPSHOT'
}

🔑 Hızlı Başlangıç

1. API İstemcisini Yapılandırma

importdev.astatic.nodestyclient.client.ClientOptions;
importdev.astatic.nodestyclient.client.NodestyApiClient;
importjava.time.Duration;
StringaccessToken = System.getenv("NODESTY_API_TOKEN");
ClientOptionsoptions = newClientOptions(accessToken)
.withTimeout(Duration.ofSeconds(45))
.withRetry(5)
.withLogLevel(ClientOptions.LogLevel.BODY);
try (NodestyApiClientclient = newNodestyApiClient(options)) {
client.getUser().getCurrentUser()
.subscribe(
user -> System.out.println("Merhaba, " + user.getUsername()),
error -> System.err.println("Bir hata oluştu: " + error.getMessage())
);
Thread.sleep(5000);
} catch (InterruptedExceptione) {
e.printStackTrace();
}

📖 API Referansı

👤 User Service (client.getUser())

MetotEndpointAçıklama
GET/users/@meMevcut kullanıcı bilgilerini getirir
GET/servicesKullanıcının tüm hizmetlerini listeler
GET/ticketsTüm destek biletlerini listeler
GET/tickets/{id}Belirli bileti getirir
GET/users/@me/invoicesFaturaları listeler
GET/users/@me/invoices/{id}Fatura detaylarını getirir
GET/users/@me/sessionsAktif oturumları getirir

☁️ VPS Service (client.getVps())

MetotEndpointAçıklama
GET/services/{id}/vps/infoVPS detaylarını getirir
POST/services/{id}/vps/actionVPS eylemi gönderir (REBOOT, SHUTDOWN)
GET/services/{id}/vps/graphsVPS kullanım grafiklerini alır
GET/services/{id}/vps/tasksVPS görevlerini listeler
POST/services/{id}/vps/passwordRoot şifresini değiştirir
GET/services/{id}/vps/os-templatesİşletim sistemi şablonlarını listeler
POST/services/{id}/vps/reinstallVPS'i yeniden kurar
POST/services/{id}/vps/backups/{date}/{file}Belirli yedeği geri yükler

🔥 Firewall Service (client.getFirewall())

MetotEndpointAçıklama
GET/services/{id}/firewall/{ip}/rulesKuralları listeler
POST/services/{id}/firewall/{ip}/rulesYeni kural oluşturur
DELETE/services/{id}/firewall/{ip}/rules/portPorta göre siler
DELETE/services/{id}/firewall/{ip}/rules/appUygulamaya göre siler
GET/services/{id}/firewall/{ip}/attack-logsSaldırı loglarını getirir
GET/services/{id}/firewall/{ip}/statsİstatistikleri getirir
GET/services/{id}/firewall/{ip}/reverse-dnsReverse DNS kayıtlarını listeler
PUT/services/{id}/firewall/{ip}/reverse-dnsReverse DNS günceller
GET/services/{id}/firewall/{ip}/attack-notificationBildirim ayarlarını getirir
PUT/services/{id}/firewall/{ip}/attack-notificationBildirim ayarlarını günceller

🖥️ Dedicated Service (client.getDedicated())

MetotEndpointAçıklama
GET/services/{id}/dedicated/infoSunucu bilgilerini getirir
POST/services/{id}/dedicated/actionEylem gönderir
GET/services/{id}/dedicated/hardwareDonanım bilgilerini getirir
GET/services/{id}/dedicated/tasksGörevleri listeler
GET/services/{id}/dedicated/os-templatesOS şablonlarını getirir
POST/services/{id}/dedicated/reinstallYeniden kurulum başlatır
GET/services/{id}/dedicated/reinstall-statusYeniden kurulum durumunu getirir

🔐 Güvenlik ve En İyi Pratikler

  • Token'ınızı kaynak kodda tutmayın, ortam değişkeni kullanın.
  • try-with-resources ile istemciyi yönetin.
  • Hata yönetimini her .subscribe() çağrısında sağlayın.
  • blockingGet() gibi bloklayıcı metotlardan kaçının.

🤝 Katkıda Bulunma

  1. Bu repoyu fork'layın
  2. Yeni bir dal oluşturun: git checkout -b feature/yeni-ozellik
  3. Değişikliklerinizi yapın ve commit'leyin
  4. Dalınızı push'layın: git push origin feature/yeni-ozellik
  5. Pull Request oluşturun

⭐ Bu proje işinize yaradıysa bir yıldız bırakmayı unutmayın! ⭐

Nodesty Topluluğu için ❤️ ile geliştirildi.

About

Nodesty API Java client library.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages