Uygulamayı aç
Moonborn — Developers

API sürümleme politikası

Yol-bölümlü (path-segment) sürümleme, kırıcı değişiklik (breaking change) tanımı, kullanımdan kaldırma zaman çizelgesi (12 ay), SDK-API uyumlandırması, OpenAPI anlık görüntü sabitlemesi.

Moonborn API'si yol-bölümlü sürümleme (path-segment versioning) kullanır: her uç nokta /v1/ (gelecekte /v2/) altında yaşar. Sürüm URL'in parçasıdır; istemciler açıkça sabitler (pin); ana (major) geçişler bilinçli olur, sürpriz değil.

Bu sayfayı bitirdiğinde

  • Etkin sürümü (v1) ve yol haritasını bileceksin.
  • Hangi değişikliklerin kırıcı (breaking) vs ekleyici (additive) olduğunu ayırt edebileceksin.
  • Kullanımdan kaldırma zaman çizelgesini (12 ay geçiş süresi) anlayacaksın.
  • SDK'ların API ara (minor) sürümüne nasıl sabitlendiğini öğreneceksin.
  • OpenAPI anlık görüntüsünü yeniden üretilebilir derlemeler (reproducible builds) için sabitleyebileceksin.

Ön koşul: Mevcut bir API entegrasyonu.

Etkin sürümler

SürümDurumAçıklama
v1Güncel, GA (general availability)Stabil sözleşmeler. Üretim-hazır.
v2Yol haritasındaHenüz çıkmadı. Çıktığında v1 kullanımdan kaldırma penceresine girer.

Kırıcı değişiklik (breaking change) tanımı

Yeni ana sürüm gerektiren değişiklikler:

  • Yanıtta bir alanı yeniden adlandırma
  • Yanıttan bir alanı kaldırma
  • Bir yanıt alanının tipini / şeklini değiştirme
  • İsteğe yeni zorunlu alan ekleme
  • Bir uç noktayı yeniden adlandırma veya kaldırma
  • Uç noktanın kimlik doğrulama gereksinimini değiştirme (örn. yeni yetki zorunlu)
  • Zaten kullanımda olan numaralandırma (enum) değerinin anlamını değiştirme

Ekleyici (additive) — sürüm artırımı olmadan iner

Ana sürüm olmadan eklenebilen değişiklikler:

  • İsteğe bağlı istek alanları (savunmacı varsayılanlarla)
  • Yeni yanıt alanları (istemciler bilinmeyeni görmezden gelir)
  • Yeni uç noktalar
  • İstek alanlarına yeni numaralandırma değerleri (istemci bildiklerini gönderir; yeni değer kabul edilir)
  • Yeni hata kodları (istemci bilinmeyeni varsayılan-ele-almalı)
  • Yeni webhook olay tipleri
  • Yeni plan-kapısıyla-kontrollü (tier-gated) özellikler (Free istemci mevcut şekli görür; Pro ve üzeri yeni alanları)

Kullanımdan kaldırma zaman çizelgesi

v2 çıktığında:

GünEtkinlik
Gün 0v2 GA. v1 trafiği sunmaya devam eder.
Gün 0 + 6 ayv1 kullanımdan kaldırma (deprecated) olarak işaretlenir. Yanıt başlığı Deprecation: true + Sunset: <ISO tarih>.
Gün 0 + 12 ayv1 kaldırılır. /v1/'a sabitli istemciler geçiş işaretçisi (migration pointer) zarflı 410 Gone alır.

12 ay geçiş süresi — gelecek ana sürümler için de aynı kural. Güvenlik zorlamaları (örn. acil kullanımdan kaldırma) araya girmediği sürece.

Sürümü çalışma zamanında oku

curl https://api.moonborn.co/v1/version
{
  "apiVersion": "1.2.4",
  "buildSha": "abc123def",
  "deployedAt": "2026-05-17T08:00:00Z"
}

apiVersion semver (anlamsal sürümleme) standardını izler:

  • Ana artırım (major bump) (1.x.x2.x.x) = yol-sürümü değişikliği (/v1//v2/)
  • Ara artırım (minor bump) (1.2.x1.3.x) = aynı yol içinde ekleyici değişiklik
  • Yama artırımı (patch bump) (1.2.41.2.5) = hata düzeltmesi, sözleşme değişikliği yok

SDK ↔ API uyumlandırması

Her SDK sürümü bir API ara sürümüne sabitlidir:

SDK sürümüAPI sürümüUyumluluk
@moonborn/sdk 1.4.x1.4.*
@moonborn/sdk 1.4.x1.5.*✓ (ileriye doğru — yalnız ekleyici)
@moonborn/sdk 1.4.x2.0.*✗ (ana sürüm uyuşmazlığı)
@moonborn/sdk 2.0.x1.x.*

SDK yol-sürümü uyuşmazlığında başlamayı reddeder — savunmacı koruma.

OpenAPI belirtimi

/openapi.json her zaman dağıtılmış güncel belirtimi yansıtır:

curl https://api.moonborn.co/openapi.json

Yeniden üretilebilir derlemeler için depoya anlık görüntü sabitle:

curl https://api.moonborn.co/openapi.json > apps/api/openapi-snapshot.json
git add apps/api/openapi-snapshot.json && git commit

CI apps/api/openapi.json ve apps/docs/public/openapi.jsonbayt-özdeş (byte-identical) tutar — anlık görüntü kayması başarısız olur.

Geçiş deseni — v1v2

// Adım 1: Mevcut kodu inceleyip kırıcı değişiklikleri sürüm notlarından listele
// Adım 2: Yeni uç nokta URL'leriyle birlikte SDK yükseltmesi
// Adım 3: Önce hazırlıkta (staging) test et — sandbox `sk_test_*` anahtarı kullan
// Adım 4: Özellik bayrağı (feature flag) arkasında üretimde %5 trafikle başla
// Adım 5: Stabil → %100 geçiş, `v1` kullanan kodu temizle

12 ay geçiş süresi bu adımları sıkıştırmadan yapma olanağı verir. Sonlandırma (sunset) tarihinden 3 ay önce geçişi bitir; son ay üretim-kritik hata düzeltme penceresi olarak kalsın.

Dürüst kapsam

İlgili

Hata kodları

Hata zarfı — ana sürümler arasında stabildir.

Open →
Hız limitleri

Hız limiti başlıkları — sürümler arasında stabildir.

Open →
Sürüm notları

Sürüm başına çıkış notları.

Open →
Yetkiler (scopes)

Yetki sözleşmesi — sürüm-stabil kanonik liste.

Open →