Podstawy integracji · Przewodniki
Zaczynam
Authentikacja, pierwsza prośba, błędy lokalizowane, strona i bezpieczne wdrożenie produkcji.
Dodaj mutacje dopiero po przetestowaniu obsługi error i ponownym badaniu zachowania.
Wykorzystujący i integrujący backend01
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.
Nie dodawaj Bearer ani Basic. Wartość Authorization jest tokenem SelSup.
curl --request GET 'https://api.selsup.ru/api/brand/find?limit=50&page=1' \
--header 'Authorization: YOUR_API_TOKEN'
Powiązane punkty końcowe API
GET/api/brand/findWniosek o bezpieczne badania
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.
Zapisz status HTTP, error, params, czas żądania i identyfikator korelacji. Nigdy nie zapisz tokenu ani danych osobowych.
{
"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.
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;
}
Powiązane punkty końcowe API
GET/api/brand/findPrzykład wyszukiwania stronGET/api/product/findWyszukiwanie produktów
04
Lista kontrolna produkcji
- 1
Oddzielony czytanie i pisanie
Najpierw sprawdź żądania GET. Użyj jednostek testowych i wyraźnego kroku potwierdzenia mutacji.
- 2
Konfiguracja wyprzedzania i ponowne próby
Wystarczy przeprowadzić awarie sieci i bezpieczne operacje.
- 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
Wyniki zrównania
Po masowej synchronizacji porównaj liczby i identyfikatory próbki, a następnie przenieś różnice do oddzielnego kolejki.
W dokumentacji dodaje potwierdzenie dla zapisów, ale nadal powinieneś użyć zapisów testowych.