Node SDK
Node 18+ için sıfır bağımlılığa sahip, otomatik sayfalama ve paketle gelen tür tanımları sunan resmî Listings API TypeScript istemcisi.
listingsapi-js, Listings API v4 için resmi Node.js/TypeScript istemcisidir. Konumları, dizinlerdeki işletme kayıtlarını, yorumları, gönderileri, fotoğrafları ve profil analizi verilerini tek bir düz yapılı istemci üzerinden yönetir; imleç tabanlı sayfalama, otomatik kimlik kodlama, yerleşik yeniden deneme ve tür tanımlı hata desteği sunar.
Kurulum
npm install listingsapi-jsKimlik doğrulama
API anahtarınızı Listings API geliştirici kontrol panelindeki API Keys → New key bölümünden alın.
import { ListingsAPI } from 'listingsapi-js'; const client = new ListingsAPI(); // reads LISTINGSAPI_KEY from envconst explicit = new ListingsAPI({ apiKey: 'your-api-key' }); // or pass it directlyKurucu ayrıca baseUrl (varsayılan https://listingsapi.com), timeout (varsayılan 240000 ms) ve maxRetries (varsayılan 2) parametrelerini kabul eder. Yapılandırma bölümüne bakın.
Kısa örnek
import { ListingsAPI } from 'listingsapi-js'; const client = new ListingsAPI(); const result = await client.fetchAllLocations({ first: 5 });if (!Array.isArray(result)) {for (const location of result.locations) { console.log(location.name, '--', location.city);}}Kaynaklar
Tüm metotlar istemci örneğinde bulunur:
Social API — markalar, bağlı sosyal medya hesapları ve Facebook, Instagram, X, LinkedIn ve Pinterest gönderileri — henüz bu SDK tarafından kapsanmamaktadır; Social REST referansını kullanarak doğrudan çağrı yapın.
Sayfalama
Liste döndüren metotlar imleç tabanlı sayfalamayı destekler.
// Single pageconst page = await client.fetchAllLocations({ first: 25 });if (!Array.isArray(page)) {console.log(page.locations); // Location[]console.log(page.pageInfo); // { hasNextPage, hasPreviousPage, startCursor, endCursor } // Next pageif (page.pageInfo.hasNextPage) { const next = await client.fetchAllLocations({ first: 25, after: page.pageInfo.endCursor!, });}} // Auto-paginate: returns a flat Location[]const all = await client.fetchAllLocations({ fetchAll: true, pageSize: 100 });searchLocations ve fetchInteractions aynı şekilde çalışır: varsayılan olarak bir sayfa nesnesi, fetchAll: true ile düz bir dizi döndürür.
Kimlik kodlama
Her yerde sayısal konum kimlikleri kullanabilirsiniz: SDK bunları otomatik olarak base64 ile kodlar. Önceden kodlanmış kimlikler olduğu gibi kabul edilir; kodlayıcıyı kendiniz kullanmanız gerekirse dışa aktarılmış olarak da sunulur.
import { encodeLocationId } from 'listingsapi-js'; // These are equivalentawait client.fetchPremiumListings(16808);await client.fetchPremiumListings('TG9jYXRpb246MTY4MDg='); encodeLocationId(16808); // 'TG9jYXRpb246MTY4MDg='Hata işleme
Tüm SDK hataları ListingsAPIError sınıfından türetilir. Platform API hatalarını ister HTTP durum kodu olarak ister HTTP 200 yanıt gövdesinde bildirsin, bu hatalarda APIError veya alt sınıflarından biri fırlatılır (geçersiz belirteçler ve yazma doğrulaması errors[] veri yükleri olarak gelir; yazma işlemleri de success: false bildirebilir). SDK bunların tümünde hata fırlattığı için success bayraklarını kendiniz incelemeniz gerekmez. Ağ hatalarında APIConnectionError fırlatılır.
Her APIError; statusCode, responseBody, code (platformun ilk hata kodu, e.g. "SY10005") ve errors (her öğe { code, message, context } biçimine dönüştürülmüş olarak) içerir.
import { ListingsAPI, APIError, RateLimitError } from 'listingsapi-js'; const client = new ListingsAPI(); try {await client.fetchAllLocations();} catch (error) {if (error instanceof RateLimitError) { console.log(error.retryAfter); // seconds to wait} else if (error instanceof APIError) { console.log(error.statusCode); // 401, 404, 500, or 200 for payload-level errors console.log(error.code); // first platform code, e.g. 'SY10005' console.log(error.errors); // [{ code, message, context }, ...]}}İstemci, 429 ve 5xx yanıtları için otomatik olarak yeniden deneme yapar (Retry-After dikkate alınarak varsayılan olarak 2 deneme). Yeniden deneme yöntemleri ve durum kodlarıyla ilgili bilgi için Hata işleme bölümüne bakın.
Sonraki adımlar
- Kurulum: sürüm sabitleme, ESM ve CJS karşılaştırması
- Hızlı başlangıç: ilk çalışan betiğiniz
- Yapılandırma: temel URL'yi değiştirme ve TypeScript kurulumu
- Kullanım senaryoları: baştan sona 10 uygulama örneği
- Konumlar, Yorumlar, İşletme kayıtları, Analiz verileri