https://omnilinker.pl/api/. To to samo API, z którego korzysta aplikacja webowa,
więc większość tego, co robisz na ekranie, możesz też zrobić ze skryptu, z middleware’u takiego jak n8n czy Make albo z
własnej usługi. Każde żądanie uwierzytelniasz kluczem API, który działa w imieniu
osoby, która go utworzyła.
Co możesz dziś zintegrować
Jeszcze niedostępne:
- Webhooki wychodzące. Omnilinker nie wywołuje Twojego endpointu, gdy coś się zmieni. Zamiast tego odpytuj dziennik zamówień; zobacz Webhooki i kanały zmian.
- Klienci OAuth dla Twoich aplikacji. W Omnilinkerze nie zarejestrujesz klienta OAuth ani OpenID Connect. Użyj klucza API; zobacz Uwierzytelnianie.
- Biblioteki klienckie. Nie ma oficjalnego SDK. Jeśli go potrzebujesz, wygeneruj klienta z dokumentu OpenAPI; zobacz Dokumentacja API.
Dokumentacja API
Dokumentacja wymienia każdy endpoint z jego parametrami i schematem odpowiedzi:
Na stronie Klucze API przycisk Dokumentacja API otwiera Swagger UI.
Dokumentacja opisuje całe API, także endpointy, z których klucz API nie może korzystać (zarządzanie użytkownikami,
rolami, ustawieniami i kluczami). Które to są, wyjaśnia strona
Uwierzytelnianie.
Pierwsze żądanie
1
Utwórz klucz API
W Omnilinkerze otwórz Klucze API i kliknij Nowy klucz API. Wybierz, co będzie z niego korzystać, nadaj mu
nazwę i kliknij Utwórz klucz. Skopiuj klucz, gdy się pojawi: widzisz go tylko raz. Zobacz
Uwierzytelnianie.
2
Sprawdź klucz
Wywołaj Odpowiedź podaje nazwę klucza, osobę, w której imieniu działa, Twoją organizację i uprawnienia, które klucz
faktycznie ma. Jeśli
GET /api/api-key-management/whoami z kluczem w nagłówku X-Api-Key:grantedPermissions jest puste, klucz nie może jeszcze nic zrobić.3
Wywołaj endpoint
Na przykład pobierz najnowsze zamówienia (klucz potrzebuje uprawnienia Zamówienia):
Obszary API
Każdy moduł ma własny prefiks ścieżki. Tabela wymienia obszary, z których integracja najczęściej korzysta; dokumentacja API wymienia wszystkie.
Endpointy modułu, który nie jest włączony dla Twojej organizacji, odpowiadają
403 Forbidden. To, jakie moduły masz,
zależy od Twojego planu; zobacz Moduły i dostępność funkcji.
Konwencje
Żądania i odpowiedzi
- Treść żądań i odpowiedzi to JSON. Nazwy właściwości są w camelCase:
totalCount,items,orderId. - Wyliczenia (enumy) wysyłasz i dostajesz jako liczby. Dokumentacja API podaje, jakie liczby przyjmuje każde z nich.
- Identyfikatory to GUID-y, chyba że dokumentacja mówi inaczej (na przykład
idw dzienniku zamówień to liczba). - Czasy są zwracane w UTC, w formacie ISO 8601. Wysyłaj je też w UTC, z
Zlub przesunięciem, żeby nie zostały odczytane w innej strefie czasowej. dimensionsiweightproduktu są w jego własnej jednostceunit, tak samo w odpowiedzi jak w żądaniu: pudełko o wysokości 15 cm to"height": 15z jednostką centymetr, a odesłanie tej wartości zostawia 15 cm. Mimo nazwyweight.amountInGramszawiera wagę w jednostceweight.unit. Wartości są zaokrąglone do 15 cyfr znaczących, więc odesłane bez zmian, nawet przez typ double, zachowują dokładnie zapisaną wartość.- Endpointy, które zwracają plik (eksport, szablon importu), odpowiadają samym plikiem, a nie JSON-em.
Listy i stronicowanie
Endpointy list przyjmują trzy parametry zapytania:
Lista stronicowana zwraca łączną liczbę pozycji i jedną stronę:
SkipCount o MaxResultCount, dopóki nie masz totalCount pozycji. Niektóre
endpointy mają własne stronicowanie, jak kursor dziennika zamówień; mówi o tym ich opis w dokumentacji.
Twoja organizacja
Klucz należy do jednej organizacji, a każde wywołanie z nim odczytuje i zapisuje tylko dane tej organizacji. Nie wysyłasz nagłówka ani identyfikatora najemcy: decyduje klucz. Aby pracować z dwiema organizacjami, użyj klucza z każdej z nich.Bezpieczne tworzenie zamówień
Gdy tworzysz zamówienie przezPOST /api/ordering/order, wyślij nagłówek Idempotency-Key z wartością unikalną dla
tego zamówienia w Twoim systemie, do 128 znaków. Jeśli wywołanie przekroczy limit czasu i wyślesz je ponownie z tą samą
wartością, Omnilinker zwróci zamówienie, które już utworzył, zamiast tworzyć drugie. Wartość możesz też wysłać jako
idempotencyKey w treści żądania; gdy są obie, wygrywa ta z treści.
Błędy
Gdy wywołanie się nie uda, treść odpowiedzi opisuje błąd zawsze w tym samym kształcie, niezależnie od endpointu:codeidentyfikuje błąd. Jest obecny, gdy błąd go ma; obsługę błędów opieraj na nim, a nie na komunikacie.messagejest przeznaczony dla ludzi i jest w języku żądania: wyślijAccept-Language: pl-PL, aby dostać komunikat po polsku, alboAccept-Language: en, aby dostać go po angielsku.validationErrorswymienia każde niepoprawne pole, jakomessageimembers(nazwy pól), gdy żądanie nie przeszło walidacji.datazawiera wartości związane z błędem, na przykład przekroczony limit.
Omnilinker nie ogranicza dziś liczby żądań wysyłanych z klucza API.
Uwierzytelnianie
Wysyłanie klucza, testowanie i to, co klucz może.
Webhooki i kanały zmian
Śledzenie zmian w zamówieniach przez dziennik zamówień.
Formaty plików
Kolumny importu stanów i eksportów.
Klucze API
Tworzenie, wymiana i unieważnianie kluczy.