Skip to content
0850 554 5439 [email protected]

How can we help?

Search our guides and tutorials, or browse the categories below.

Gyro API'ye ilk adım: API anahtarı oluşturma, kapsamlar ve ilk istek

Developers: API, CLI, Terraform 77 views Step-by-step guide Last verified: Markdown
Bu rehberde ne öğreneceksinizMüşteri panelinden güvenli bir API anahtarı oluşturmayı, anahtara yalnız gereken izinleri vermeyi, ilk isteğinizi göndermeyi, yanıt ve hata biçimini, hız sınırını ve para harcayan işlemlerde onay ve tekrar korumasının nasıl çalıştığını.
Süre10 dakika
Kimin içinGyro hizmetlerini betik, uygulama ya da CI hattından yönetmek isteyen geliştiriciler ve sistem yöneticileri.
GerekenlerGyro müşteri hesabı, curl (ya da herhangi bir HTTP istemcisi).

1. Gyro API ne yapar?

Gyro Public API, müşteri panelinde yaptığınız işlerin çoğunu programla yapmanızı sağlayan bir REST API'dir: bulut sunucu siparişi ve yönetimi (güç, yeniden kurulum, snapshot, yedek, ters DNS, güvenlik duvarı), SSH anahtarları, fatura ve bakiye, alan adı ve DNS, destek talepleri, Kurumsal Mail, Nesne Depolama, Uptime İzleme ve tüm hizmetleriniz için ortak bir araç köprüsü.

Bilgi Değer
Taban adres https://www.gyrohosting.com/api/v1/client
Kimlik Authorization: Bearer <ANAHTAR> (ya da X-Api-Key: <ANAHTAR>)
Biçim JSON gönderilir, JSON döner
Tam başvuru Geliştirici belgeleri (her uç, parametre ve örnek; OpenAPI 3.1 tanımı indirilebilir)

Bu rehber ilk 10 dakikayı anlatır; her ucun ayrıntısı geliştirici belgelerindedir.

2. API anahtarı oluşturma

  1. Müşteri paneline girin. Sağ üstteki hesap menüsünü açıp API Kimlik Bilgileri'ne tıklayın.
  2. API Anahtarı Oluştur'a basın. Kimliğinizi yeniden doğrulamanız istenebilir (Siz Olduğunuzu Doğrulayın); parolanızla ya da gelen kodla onaylayın.
  3. Ad alanına anahtarın nerede kullanılacağını yazın (ör. "CI sunucusu", "Yedekleme betiği").
  4. İzinli IP Adresleri'ne anahtarı kullanacak makinelerin IP adreslerini her satıra bir tane yazın. Boş bırakırsanız anahtar her IP'den çalışır.
  5. İzinler listesinden yalnız ihtiyacınız olanları seçin (Bölüm 4). İzinler kategorilere ayrılmıştır (Hesap, Hizmetler, Alan Adları, Faturalar …); İzinlerde ara... kutusuna cloud yazarak bulut sunucu izinlerini bulabilirsiniz. Okuma ile başlamak en güvenli yoldur.
  6. Oluşturun. API Anahtarı Oluşturuldu penceresindeki anahtarı Kopyala ile alın ve bir parola yöneticisinde ya da CI sistemindeki gizli değişkenlerde saklayın.
Anahtara bir ad verin (1), kullanılacağı IP adreslerini her satıra bir tane yazın (2) ve yalnız gereken izinleri seçin (3).
Dikkat

Anahtar yalnız bir kez gösterilir ve okunabilir biçimde saklanmaz. Kaybederseniz Anahtarı Yenile ile yeni bir değer üretin; eskisi o anda çalışmaz olur. Anahtarı kod deposuna (Git) yazmayın, e-posta ya da sohbet uygulamasıyla paylaşmayın.

Anahtarlarınızın listesinde her anahtarın durumu (Aktif, İptal Edildi), izin sayısı, IP kısıtı ve son kullanım zamanı görünür. İstek Kayıtları sekmesinde anahtarlarınızla yapılan her istek durum kodu, IP ve süreyle listelenir; beklemediğiniz bir erişimi buradan fark edersiniz.

3. İlk istek

Anahtarı bir ortam değişkenine koyun (komut geçmişinize düşmemesi için):

bash
read -rs GYRO_TOKEN && export GYRO_TOKEN

Anahtarın kim olduğunu ve izinlerini sorun:

bash
curl -s https://www.gyrohosting.com/api/v1/client/whoami \
  -H "Authorization: Bearer $GYRO_TOKEN"

Bulut sunucularınızı listeleyin:

bash
curl -s https://www.gyrohosting.com/api/v1/client/cloud/servers \
  -H "Authorization: Bearer $GYRO_TOKEN"

Python ile aynı istek:

python
import os, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers", headers=h, timeout=60)
r.raise_for_status()
for s in r.json()["data"]:
    print(s["id"], s.get("hostname"), s.get("status"))

Sunucu numarası (id), müşteri panelindeki hizmet numarasıyla aynıdır.

4. İzinler (kapsamlar)

Her anahtar yalnız verdiğiniz izinleri taşır. Bulut sunucu işlemleri için temel izinler:

İzin Ne verir
cloud_read Tüm okuma uçları: sunucu listesi ve ayrıntısı, snapshot ve yedek listesi, grafikler, katalog
cloud_write Güç, yeniden kurulum, snapshot, ters DNS, ad değiştirme, SSH anahtarları
cloud_order Para harcar: yeni sunucu siparişi (hesap bakiyesinden ödenir)
cloud_delete Sunucu iptali / silme
services_read / services_write Tüm ürün hatlarındaki hizmetlerinizi okuma / hizmet araçlarını çalıştırma (Kurumsal Mail, Nesne Depolama, Uptime İzleme vb.)
billing_read / billing_pay Fatura ve bakiye okuma / faturayı bakiyeden ödeme (para harcar)
webhooks, keys Webhook'ları ve alt hesap anahtarlarını yönetme

Bunların yanında alan adı, DNS, destek talebi, sipariş ve hesap işlemleri için uç başına ayrı izinler vardır; liste her izni HTTP yöntemi ve yoluyla (ör. GET /client/me) gösterir.

Dikkat

Tam Erişim Ver kutusu anahtara tüm izinleri verir; para harcayan ve silen işlemler dahil. Yalnız gerçekten gerekiyorsa ve anahtarı IP ile kısıtlayarak kullanın.

Önerilen anahtar düzeni:

  • İzleme ve raporlama betikleri: yalnız cloud_read.
  • Dağıtım (deploy) hattı: cloud_read + cloud_write, IP kısıtlı.
  • Sunucu açıp kapatan altyapı otomasyonu (ör. Terraform): ayrıca cloud_order ve cloud_delete; yalnız bu iş için ayrı bir anahtar.
Bilgi

Ekibinize ya da müşterinize sınırlı erişim vermeniz gerekiyorsa ana anahtarınızı paylaşmayın. API'deki alt hesap anahtarlarıyla yalnız belirli hizmetlere ve eylemlere izin veren dar anahtarlar üretebilirsiniz (geliştirici belgelerinde "API anahtarları" bölümü).

5. Yanıtlar, hatalar ve hız sınırı

Başarılı yanıt {"data": …, "meta": {…}}, hata {"error": {"code": "…", "message": "…", "details": {…}}} biçimindedir. Programınızda mesaja değil code alanına göre karar verin; mesajlar hesabınızın dilindedir.

HTTP Sık kodlar Ne yapmalı
401 missing_token, invalid_token, key_revoked Anahtarı ve Authorization başlığını kontrol edin
402 insufficient_balance Hesap bakiyenizi yükleyin
403 insufficient_scope, ip_not_allowed Anahtara izni ekleyin ya da IP'nizi izinli listeye yazın
404 server_not_found Kimlik yanlış ya da nesne size ait değil (başkasına ait nesneler de 404 döner)
409 server_locked Sunucuda süren bir işlem var; birkaç saniye sonra tekrar deneyin
422 confirm_required İstek gövdesine "confirm": true ekleyin (Bölüm 6)
429 rate_limited Retry-After başlığındaki süre kadar bekleyin

Hız sınırı: anahtar başına varsayılan dakikada 60 istek. Her yanıtta X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset başlıkları bulunur. Sınırın çok üzerine çıkan anahtar geçici olarak kilitlenir; ağır sunucu işlemleri (yeniden kurulum, geri yükleme) ayrıca sunucu başına günlük sınırlıdır.

Sayfalama: listeler page ve limit (en çok 100) alır; yanıttaki meta.next_page 0 ise son sayfadasınız.

Eşzamansız işler: kurulum, güç ve snapshot işlemleri arka planda çalışır. GET /cloud/servers/{id} ile 5-10 saniyede bir durumu sorgulayın; live.locked true iken yazma istekleri 409 döner.

6. Para harcayan ve geri dönüşsüz işlemler

API, yanlışlıkla iki sunucu sipariş etmenizi ya da veri silmenizi önlemek için üç güvenlik katmanı kullanır:

  1. Önce teklif: sipariş gövdesine "dry_run": true ekleyin; fiyat teklifi döner, hiçbir şey oluşturulmaz.
  2. Açık onay: gerçek sipariş ve yıkıcı işlemler (yeniden kurulum, snapshot'tan dönüş, silme) "confirm": true olmadan çalışmaz.
  3. Tekrar koruması: siparişlerde Idempotency-Key başlığı zorunludur. Ağ hatasında aynı anahtar ve aynı gövdeyle tekrar denerseniz ikinci sipariş verilmez; ilk yanıt döner (Idempotency-Replayed: true).
bash
# Önce fiyat teklifi (hiçbir şey oluşturulmaz)
curl -s -X POST https://www.gyrohosting.com/api/v1/client/cloud/servers \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"product_id": 814, "cycle": "monthly", "image": "ubuntu-24.04", "dry_run": true}'

product_id, sipariş sayfasının adresindeki numaradır (ör. /siparis/server/814); sipariş verilebilen ürünleri GET /cloud/products ile de listeleyebilirsiniz. Ürün numarası yerine paket adı ve bölgeyle de sipariş verebilirsiniz: "plan": "standart-2-4", "region": "eu-de-1". Her ürünün plan ve region değeri GET /cloud/products yanıtında yazar; bölgelerin listesi ve şehirleri GET /cloud/locations ile görünür.

Dikkat

API siparişleri hesap bakiyenizden ödenir; kayıtlı kartınızdan çekim yapılmaz. Bakiye yetmezse 402 insufficient_balance döner. Bakiye yükleme için Bakiye yükleme rehberine bakın.

7. Anahtar güvenliği

  • Her kullanım yeri için ayrı anahtar oluşturun; bir yer ele geçirilirse yalnız o anahtarı iptal edersiniz.
  • Sabit IP'li sunuculardan kullanılan anahtarları İzinli IP Adresleri ile kısıtlayın.
  • Kullanılmayan anahtarları Anahtarı İptal Et ile iptal edin. İptal anında geçerlidir ve geri alınamaz; iptal edilen anahtar silinebilir.
  • İstek Kayıtları'nı ara sıra gözden geçirin.

8. Sık sorulan sorular

Menüde "API Kimlik Bilgileri"ni neden göremiyorum?

Alt kullanıcı olarak girdiyseniz API anahtarı oluşturamazsınız; anahtarları hesap sahibi oluşturur. Hesap sahibiyseniz ve yine göremiyorsanız destek talebi açın.

API ile yaptığım işlemler panelde görünür mü?

Evet. API ile açılan sunucu ya da değiştirilen ayar, müşteri panelinde aynı hizmetin altında görünür.

API'yi kullanmak ücretli mi?

Hayır. API ücretsizdir; yalnız API ile sipariş ettiğiniz hizmetler ücretlidir.

Anahtarım çalınırsa ne yapmalıyım?

Hemen API Kimlik Bilgileri'nde anahtarı iptal edin, yeni bir anahtar oluşturun ve İstek Kayıtları'nda o anahtarla yapılan istekleri inceleyin. Şüpheli bir işlem görürseniz destek talebi açın.

Hazır istemci kütüphanesi var mı?

Evet. Komut satırı için gyro CLI, altyapıyı kodla yönetmek için Terraform sağlayıcısı var; Python, Go ve JavaScript örnekleri geliştirici belgelerinde.

Olayları (ör. sunucu hazır oldu) kendi sistemime alabilir miyim?

Evet, imzalı webhook'larla. Kurulum ve imza doğrulama örneği geliştirici belgelerinin "Webhook'lar" bölümündedir.

Biliyor muydunuz?

curl yazmak yerine gyro CLI aynı API'yi tek komutla kullanır, para harcayan işlemlerde fiyatı gösterip onay ister ve tekrar korumasını kendisi ekler: gyro CLI kurulumu ve ilk komutlar.

Sıradaki adım

Was this helpful?

Thanks for your feedback!

Still Need Help?

Our support team is here around the clock for anything you can't find above.