API - Επισκόπηση

API - Σύνδεση και εξουσιοδότηση

Ρυθμίστε τα κλειδιά API, ελέγξτε τη σύνδεση και μάθετε για τον χειρισμό σφαλμάτων και τα όρια αιτημάτων.

Επισκόπηση endpoints

ΜέθοδοςEndpointΠεριγραφήΠρόσβαση
GET/public-api/healthzΈλεγχος υγείας υπηρεσίας.δημόσιο
GET/public-api/v1/auth/checkΕπικυρώνει διαπιστευτήρια και επιστρέφει κατάστημα, δικαιώματα και δυνατότητες προγράμματος.οποιαδήποτε έγκυρα διαπιστευτήρια

Έλεγχος ταυτότητας και βασικό URL

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

Δημιουργήστε διαπιστευτήρια API στις ρυθμίσεις ηλεκτρονικού εμπορίου. Το Access Token εμφανίζεται μία φορά, οπότε αποθηκεύστε το αμέσως στο ασφαλές αποθετήριο μυστικών του backend.

Κρατήστε τα Access Key και Access Token στον διακομιστή σας. Τα endpoints με έλεγχο ταυτότητας απορρίπτουν κλήσεις από προγράμματα περιήγησης που περιλαμβάνουν κεφαλίδες Origin ή Referer.

Τα διαπιστευτήρια μπορούν να έχουν περιορισμένα δικαιώματα. Χρησιμοποιήστε GET /auth/check για να επαληθεύσετε το ενεργό κατάστημα, τις δυνατότητες προγράμματος και τα δικαιώματα που επιστρέφονται για τα διαπιστευτήρια.

x-alter-access-key: YOUR_API_KEY
x-alter-access-token: YOUR_API_TOKEN
ΠαράμετροςΥποχρεωτικόΛεπτομέρειες
x-alter-access-keyναιΔημόσιο αναγνωριστικό διαπιστευτηρίων.
x-alter-access-tokenναιΜυστικό token που αντιστοιχεί στο κλειδί πρόσβασης.
x-alter-client-fingerprintόχιΠροαιρετικό σταθερό αποτύπωμα για περιορισμό ρυθμού συνεδριών ενσωμάτωσης.
Authorizationμόνο κατά την εκτέλεσηToken Bearer που επιστρέφει το POST /embed/session και χρησιμοποιείται από το /runtime/bootstrap.

Δοκιμή σύνδεσης

Χρησιμοποιήστε το endpoint ελέγχου ταυτότητας πριν ενεργοποιήσετε λειτουργίες συγχρονισμού ή ενσωμάτωσης σε παραγωγική εγκατάσταση.

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

Παράδειγμα αιτήματος (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);

Παράδειγμα απάντησης

{
  "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
    }
  }
}

Η παρακάτω βοηθητική συνάρτηση χρησιμοποιείται στα υπόλοιπα παραδείγματα. Είναι απλό fetch και εκτελείται σε Node.js 18+ ή οποιοδήποτε περιβάλλον διακομιστή παρέχει fetch.

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;
}

Σφάλματα και όρια ρυθμού αιτημάτων

Τα περισσότερα σφάλματα ελεγκτών κανονικοποιούνται σε απάντηση code. Το middleware ελέγχου ταυτότητας και οι περιοριστές ρυθμού μπορούν να επιστρέφουν απάντηση error.

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

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

{
  "error": "Too Many Requests"
}
ΤύποςΌριοΧρονικό διάστημα
Καθολικό600 αιτήματα60 δευτερόλεπτα
GET /auth/check60 αιτήματα60 δευτερόλεπτα
Ανάγνωση παραγγελιών/προϊόντων300 αιτήματα60 δευτερόλεπτα
Εγγραφή παραγγελιών/συνεδρίες ενσωμάτωσης/συνδέσεις εκτέλεσης120 αιτήματα60 δευτερόλεπτα
Ανάγνωση πόρων/εισαγωγών σχεδίων180 αιτήματα60 δευτερόλεπτα
Γραμματοσειρές300 αιτήματα60 δευτερόλεπτα
Ανταλλαγή σύνδεσης WP30 αιτήματα60 δευτερόλεπτα
GET /model-generator/*600 αιτήματα60 δευτερόλεπτα