Ülkeleri, eyaletleri ve kategorileri sorgulayın

Konum oluşturmadan önce desteklenen ülkeleri, eyalet kodlarını, işletme kategorisinin sayısal ID’sini ve planınızdaki yayın platformlarını öğrenin.

Bir konum oluşturmak için API'den alınması gereken üç değer gerekir: API'nin kabul ettiği bir countryIso ve stateIso, sayısal bir subCategoryId ve yayın platformlarını sınırlamak istiyorsanız planınızdaki sitelerin id değerleri. Bu değerleri üç katalog uç noktası sağlar. Üçü de sayfalama olmadan düz bir dizi döndürür.

1. Ülkeleri ve eyalet kodlarını listeleyin

GET /countries, desteklenen her ülkeyi ISO kodu, bir hasCity bayrağı ve bir states dizisiyle birlikte döndürür. iso değerleri, oluşturma ve güncelleme işlemlerinde countryIso ve stateIso alanlarına aktarılır. Python SDK bu işlemi client.countries(), Node SDK ise client.fetchCountries() olarak sunar.

Countries
curl https://listingsapi.com/api/v4/countries \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "supportedCountries": [      {        "databaseId": 13,        "iso": "AU",        "name": "Australia",        "hasCity": true,        "states": [          { "id": "139", "iso": "VIC", "name": "Victoria" },          { "id": "142", "iso": "NSW", "name": "New South Wales" }        ]      },      {        "databaseId": 17,        "iso": "BE",        "name": "Belgium",        "hasCity": true,        "states": []      }    ]  }}

hasCity: true, oluşturma sırasında city alanının zorunlu olduğu anlamına gelir; false olduğunda gönderdiğiniz şehir değeri yok sayılır. stateRequired: true, stateIso alanının zorunlu olduğu ve ülkenin states değerlerinden biri olması gerektiği anlamına gelir; false olduğunda bu alanı dahil etmeyin. hasPostalCode: true, ülkenin posta kodu kullandığı anlamına gelir; bu nedenle adresle birlikte postalCode gönderin. Ülkeler uç noktası her bayrağı açıklar.

2. Bir kategori id değeri bulun

GET /sub-categories, kategori kataloğunun tamamını döndürür. subCategoryId olarak göndereceğiniz değer, base64 id değil, tam sayı olan databaseId değeridir. Örneğin restoranlar için bu değer 1432 olur. Listeyi kendi kodunuzda ada göre filtreleyin; sunucu tarafında bir arama parametresi yoktur.

Find a category
curl https://listingsapi.com/api/v4/sub-categories \-H "Authorization: API $LISTINGSAPI_KEY" \| jq '.data.subcategories[] | select(.name | test("restaurant"; "i")) | {databaseId, name, primary}'
JSON
{  "data": {    "subcategories": [      {        "databaseId": 1432,        "id": "U3ViQ2F0ZWdvcnk6MTQzMg==",        "key": "restaurants",        "name": "Restaurants",        "primary": true      }    ]  }}
AlanKullanım amacı
databaseIdsubCategoryId olarak veya en fazla 9 ikincil kategori için additionalCategoryIds içinde gönderilecek tam sayı.
nameBir seçim aracında gösterilecek ve eşleştirme için kullanılacak, insanların okuyabileceği etiket.
keyAdın, yeniden adlandırmalarda değişmeyen, URL'ye uygun slug değeri.
primaryKategorinin bir konumun birincil alt kategorisi olup olamayacağı. subCategoryId için yalnızca true kayıtlarını seçin.

3. Planınızın hangi yayın platformlarını kapsadığını görün

GET /plan-sites, planınızdaki her yayın platformunu sayısal bir id, bir url, kabul ettiği ülkeler ve hideAddress değerini dikkate aldığı ülkelerle birlikte listeler. Bu id değerleri, oluşturma sırasında enabledSiteIds ve güncelleme sırasında submissionDisabledSiteIds için geçerli olan tek değerlerdir. Yalnızca konumu kabul edecek yayın platformlarını sunmak için konumun ülkesine göre filtreleyin.

Plan sites
curl https://listingsapi.com/api/v4/plan-sites \-H "Authorization: API $LISTINGSAPI_KEY" \| jq '.data.planSites[] | select(.supportedCountries | index("US")) | {id, name, url}'
JSON
{  "data": {    "planSites": [      {        "id": 1,        "name": "Google Maps",        "url": "maps.google.com",        "supportedCountries": ["US", "CA", "IN", "GB", "DE"],        "hideAddressSupportedCountries": ["US", "CA", "AU", "IN", "GB"]      },      {        "id": 2,        "name": "Yelp",        "url": "yelp.com",        "supportedCountries": ["US", "CA", "GB", "DE", "FR"],        "hideAddressSupportedCountries": ["US", "CA", "AU", "GB"]      }    ]  }}

Burada her iki ülke dizisi de kısaltılmıştır; canlı yanıt, site başına 50 veya daha fazla kod listeleyebilir. Hizmet bölgesi olan bir işletme için hideAddressSupportedCountries alanını da kontrol edin; çünkü ülkeyi kabul eden bir yayın platformu, açık adresi olmayan bir işletme kaydını yine de reddedebilir.

4. Bu sorguların sonuçlarını önbelleğe alın

Üç katalog da nadiren değişir ve hiçbirinde sayfalama yoktur; bu nedenle başlangıçta her birini bir kez alın, bellekte veya küçük bir tabloda saklayın ve belirli aralıklarla yenileyin. Her oluşturma işlemi sırasında bunları çağırmak, yeni veri döndürmeden istek hızı limitini tüketir; Launch planında bu, dakikada kullanabileceğiniz 10 isteğin 3'ünü tüketir.

KatalogBoyutYenileme zamanı
ÜlkelerOnlarca ülke, yüzlerce eyaletNadiren. Günde bir kez fazlasıyla yeterlidir.
Alt kategorilerYaklaşık 6.000 kayıtGünde bir kez veya bir oluşturma işlemi bilinmeyen bir subCategoryId nedeniyle başarısız olduğunda.
Plandaki sitelerOnlarca yayın platformuListe planınızın kapsamıyla sınırlı olduğundan, plan değiştiğinde.

Alt kategoriler için küçük harfli name değerlerini databaseId değerleriyle, ülkeler içinse countryIso değerlerini states değerleriyle eşleştiren birer eşleme oluşturun. Oluşturma çağrısını yapmadan önce adresi önbellekteki verilere göre doğrulayın; böylece desteklenmeyen bir countryIso (SY10036) veya eksik bir city (SY10126), istek gönderilmeden önce uygulamanızda tespit edilir.

Sonraki adımlar