HTTP API
Editör, masaüstü uygulaması ve kimlik alanı aynı arka uçla konuşur: https://api.axion-robot.com.
Sürümleme
Bütün uçlar /api/v1/… altındadır. Sürümsüz /api/…yolları geçiş takma adıdır: çalışır ama yanıtta işaretlenir.
GET /api/v1/auth/me → X-API-Version: v1
GET /api/auth/me → X-API-Version: v1
Deprecation: true
Link: </api/v1/auth/me>; rel="successor-version"
GET /api/v9/auth/me → 404 api_version_unknownEditör kullanıcının makinesinde çalışır ve aylarca güncellenmeyebilir. Uçları kırmadan geliştirebilmek için yol sürümlenir: yeni davranış /api/v2/… altında doğar, v1 eskiyi konuşmaya devam eder. Bilinmeyen bir sürüm sessizce en yeniye düşmez.
Sunulan sürümler /healthz içinde bildirilir:
GET /healthz
{ "ok": true, "api_versions": ["v1"], "api_version_current": "v1" }Kimlik
| Uç | Ne yapar |
|---|---|
POST /api/v1/auth/otp/request | E-postaya altı haneli kod gönderir. |
POST /api/v1/auth/otp/verify | Kodu doğrular; hesap yoksa açar, oturum verir. |
GET /api/v1/auth/me | Oturumun sahibi. |
POST /api/v1/auth/logout | Oturumu kapatır. |
Oturum iki yolla taşınır: tarayıcı panelinde çerez, editörde Bearer başlığı. Çerez varsa o kazanır ve yazma isteklerinde CSRF aranır; çerezsiz çağrılar CSRF’e tabi değildir.
Kod isteği, adresin kayıtlı olup olmadığını söylemez. Yanıt her iki durumda da aynıdır.
Lisans
| Uç | Ne yapar |
|---|---|
POST /api/v1/licenses/claim | Anahtarı oturumdaki hesaba bağlar (geri alınamaz). |
GET /api/v1/licenses/mine | Hesaba bağlı lisans ya da null. |
POST /api/v1/licenses/activate | Bu kurulum için koltuk ayırır (oturum gerekmez). |
POST /api/v1/licenses/validate | Kirayı tazeler; çevrimdışı süre buradan gelir. |
Bulut
| Uç | Ne yapar |
|---|---|
GET /api/v1/cloud/projects | Yedeklenmiş programlar. |
POST /api/v1/cloud/projects | Program kaydeder ya da günceller. |
POST /api/v1/cloud/files | Dosya yükler (base64). |
GET /api/v1/cloud/files/:id | Dosyayı indirir. |
Nesne deposu yapılandırılmamışsa dosya uçları açıkça kapalı der (503 storage.disabled), sessizce “kaydettim” demez.
Sürümler
GET /api/v1/releases/latest
{ "version": "1.2.0", "notes": "…", "files": {
"mac-arm": { "url": "https://…", "sha256": "…", "size": 0 } } }Kurulum betiği ve indirme merkezi bu manifesti okur. İndirme adresini değiştirebilmek, kullanıcıya başka bir ikili indirtmek demektir; bu yüzden manifesti yalnız yönetici yazabilir.
Hatalar
{ "error": { "code": "license.claimed",
"message": "Bu lisans başka bir hesaba bağlı." } }Kod makine içindir, mesaj insan için ve Türkçedir. Hız sınırına takılan istek 429 rate_limited alır.