API - Genel bakış

API - Bağlantı ve yetkilendirme

API anahtarlarını yapılandırın, bağlantıyı test edin, hata yönetimini ve istek sınırlarını öğrenin.

Uç noktalara genel bakış

YöntemUç noktaAçıklamaErişim
GET/public-api/healthzHizmet durum kontrolü.herkese açık
GET/public-api/v1/auth/checkKimlik bilgilerini doğrular; mağazayı, izinleri ve plan özelliklerini döndürür.kimliği doğrulanmış herhangi bir kimlik bilgisi

Kimlik doğrulama ve temel URL

https://alterproduct.com/public-api/v1

E-ticaret ayarları panelinde API kimlik bilgileri oluşturun. Access Token yalnızca bir kez gösterilir; hemen backend’inizin gizli bilgi deposuna kaydedin.

Access Key ve Access Token değerlerini sunucunuzda saklayın. Kimlik doğrulanan uç noktalar, Origin veya Referer başlıkları içeren tarayıcı kaynaklı çağrıları reddeder.

Kimlik bilgilerinin izinleri sınırlandırılabilir. Etkin mağazayı, plan özelliklerini ve kimlik bilgisi için döndürülen izinleri doğrulamak amacıyla GET /auth/check kullanın.

x-alter-access-key: YOUR_API_KEY
x-alter-access-token: YOUR_API_TOKEN
ParametreGerekliAyrıntılar
x-alter-access-keyevetKimlik bilgisinin herkese açık tanımlayıcısı.
x-alter-access-tokenevetErişim anahtarıyla eşleştirilmiş gizli belirteç.
x-alter-client-fingerprinthayırYerleştirme oturumu hız sınırlaması için isteğe bağlı, sabit parmak izi.
Authorizationyalnızca çalışma zamanıPOST /embed/session tarafından döndürülen ve /runtime/bootstrap tarafından kullanılan Bearer belirteci.

Bağlantı testi

Canlı entegrasyonda eşitleme veya yerleştirme özelliklerini etkinleştirmeden önce kimlik doğrulama kontrolü uç noktasını kullanın.

GET https://alterproduct.com/public-api/v1/auth/check

Örnek istek (fetch)

const response = await fetch('https://alterproduct.com/public-api/v1/auth/check', {
  method: 'GET',
  headers: {
    'x-alter-access-key': process.env.ALTER_ACCESS_KEY,
    'x-alter-access-token': process.env.ALTER_ACCESS_TOKEN
  }
});

const payload = await response.json();

if (!response.ok) {
  throw new Error(payload?.code || payload?.error || `Alter API ${response.status}`);
}

console.log(payload);

Örnek yanıt

{
  "ok": true,
  "message": "success",
  "storefrontId": 12,
  "userOwnerId": 34,
  "credentialId": 56,
  "scopes": ["orders:read", "orders:write", "products:read"],
  "plan": {
    "requiredPlan": "Business",
    "currentPlanName": "Business",
    "eligible": true,
    "runtimeFlags": {
      "viewer": true,
      "configurator": true,
      "customizer": true
    },
    "limits": {
      "activeRuntimeBindingsLimit": 100,
      "monthlyReassignmentLimit": 1000,
      "monthlyEmbedTokenLimit": 50000
    }
  }
}

Aşağıdaki yardımcı işlev diğer örneklerde de kullanılır. Düz fetch kullanır; Node.js 18+ veya fetch sağlayan herhangi bir sunucu çalışma zamanında çalışabilir.

const ALTER_API_BASE = 'https://alterproduct.com/public-api/v1';

const authHeaders = {
  'x-alter-access-key': process.env.ALTER_ACCESS_KEY,
  'x-alter-access-token': process.env.ALTER_ACCESS_TOKEN
};

async function alterFetch(path, options = {}) {
  const response = await fetch(`${ALTER_API_BASE}${path}`, {
    ...options,
    headers: {
      ...authHeaders,
      ...(options.body ? { 'Content-Type': 'application/json' } : {}),
      ...options.headers
    }
  });

  const payload = await response.json().catch(() => null);

  if (!response.ok) {
    throw new Error(payload?.code || payload?.error || `Alter API ${response.status}`);
  }

  return payload;
}

Hatalar ve istek hızı sınırları

Denetleyici hatalarının çoğu code yanıtına normalleştirilir. Kimlik doğrulama ara katmanı ve hız sınırlayıcılar bunun yerine error yanıtı döndürebilir.

// Controller error
{
  "code": "assetCatalog.invalidType"
}

// Auth middleware or rate limit
{
  "error": "Unauthorized"
}

{
  "error": "Too Many Requests"
}
TürSınırZaman aralığı
Genel600 istek60 saniye
GET /auth/check60 istek60 saniye
Sipariş/ürün okuma300 istek60 saniye
Sipariş yazma/yerleştirme oturumları/çalışma zamanı bağları120 istek60 saniye
Varlık/tasarım içe aktarımı okuma180 istek60 saniye
Yazı tipleri300 istek60 saniye
WP bağlantı değişimi30 istek60 saniye
GET /model-generator/*600 istek60 saniye