SelSup Developers

Podstawy integracji · Przewodniki

Zaczynam

Authentikacja, pierwsza prośba, błędy lokalizowane, strona i bezpieczne wdrożenie produkcji.

4 sekcjePrzewodnik dla programistów

Dodaj mutacje dopiero po przetestowaniu obsługi error i ponownym badaniu zachowania.

Wykorzystujący i integrujący backend

01

Autentyfikacja i przechowywanie tokenów

Wysyłaj token API bezpośrednio w nagłówku Authorization bez prefiksu Bearer.

Stwórz osobny token dla każdej integracji. Możesz następnie odwołać jedno połączenie bez przerwania innych i przyznać tylko potrzebne pozwolenia.

Nie wysyłaj go w przeglądarce JavaScript, aplikacji mobilnej, adres URL, dzienniki lub analityki.

!
To nie jest OAuth

Nie dodawaj Bearer ani Basic. Wartość Authorization jest tokenem SelSup.

Pierwszy wniosek · cURL
curl --request GET 'https://api.selsup.ru/api/brand/find?limit=50&page=1' \
  --header 'Authorization: YOUR_API_TOKEN'

02

Błąd i lokalizacja wiadomości

Połączenie na stabilnym polu error i używanie localMessage wyłącznie do czytelnego przez człowieka wyjścia.

Aplikacja error zazwyczaj zawiera error, localMessage i params. Serwer tłumaczy localMessage za pomocą pola lang użytkownika, który posiada token.

Język dokumentacji i Accept-Language nie zmieniają lokalizacji error. Nigdy nie porównaj localMessage w kodzie ani nie zachowaj go jako status maszyny.

i
Kontext diagnostyczny

Zapisz status HTTP, error, params, czas żądania i identyfikator korelacji. Nigdy nie zapisz tokenu ani danych osobowych.

Wniosek error umowa · JSON
{
  "error": "brand_already_exists",
  "localMessage": "Brand Base already exists",
  "params": {
    "name": "Base"
  }
}

03

Strony w dużych zbiorach

Użyj stałego sortowania i zatrzymaj, gdy hasNextPage jest fałszywy lub zwrócona strona jest krótsza niż limit.

count=true może wywołać dodatkowe zapytanie liczby. Wyślij je na pierwszy wniosek tylko wtedy, gdy jest to rzeczywiście potrzebne.

Dane mogą zmieniać się między stronami. W celu powtarzającej się synchronizacji, sortuj je według niezmiennego identyfikatora i procesy w oddzielnym przepływie stopniowym.

Łuk stron · JavaScript
let page = 1;
let hasNextPage = true;

while (hasNextPage) {
  const url = new URL('https://api.selsup.ru/api/brand/find');
  url.searchParams.set('limit', '500');
  url.searchParams.set('page', String(page));
  url.searchParams.set('sortBy', 'BRANDID');
  url.searchParams.set('ascending', 'true');

  const response = await fetch(url, {
    headers: { Authorization: process.env.SELSUP_API_TOKEN }
  });
  if (!response.ok) throw await response.json();

  const result = await response.json();
  await savePage(result.rows);
  hasNextPage = result.hasNextPage;
  page += 1;
}

04

Lista kontrolna produkcji

  1. 1

    Oddzielony czytanie i pisanie

    Najpierw sprawdź żądania GET. Użyj jednostek testowych i wyraźnego kroku potwierdzenia mutacji.

  2. 2

    Konfiguracja wyprzedzania i ponowne próby

    Wystarczy przeprowadzić awarie sieci i bezpieczne operacje.

  3. 3

    Ogranicz równoczesność

    Uważaj na limity punktów końcowych i użyj kolejki z wykładniczym backkoff i mały przypadkowy nerwer.

  4. 4

    Wyniki zrównania

    Po masowej synchronizacji porównaj liczby i identyfikatory próbki, a następnie przenieś różnice do oddzielnego kolejki.

!
Dane z kont na żywo

W dokumentacji dodaje potwierdzenie dla zapisów, ale nadal powinieneś użyć zapisów testowych.