Skip to main content
View Categories

bs4 API — odczyt, dodawanie, aktualizacja i usuwanie danych

Poniższe operacje wykorzystują aliasy API klas i pól podane w pomocy dla developera konektora. Przykładowe company, name i vat_id nie są gwarantowanymi nazwami w każdej instalacji. Zastąp je aliasami swojego wdrożenia.

Adres i autoryzacja #

Podstawą adresu jest adres instalacji BS4, łącznie z podfolderem. Dołącz nagłówek Authorization: Bearer TOKEN. Dla treści JSON ustaw Content-Type: application/json. Token przechowuj poza kodem przykładowym, np. w chronionej konfiguracji lub zmiennej środowiskowej.

MetodaŚcieżkaZastosowanie
GET/api/{className}/{objectID}Odczyt jednego obiektu albo kilku ID rozdzielonych przecinkami.
GET/api/{className}/?limit=100Odczyt listy z ograniczeniem liczby wyników.
POST/api/{className}/Dodanie obiektu; results zawiera nowe ID.
PUT/api/{className}/{objectID}Aktualizacja jednego obiektu; results to potwierdzenie operacji.
DELETE/api/{className}/{objectID}Usunięcie jednego obiektu.

Jak czytać odpowiedź #

{"code":200,"results":[{"name":"Firma przykładowa"}],"success":true}

GET zwraca tablicę obiektów w results, także przy odczycie jednego ID. Nie zakładaj, że nazwa firmy znajduje się bezpośrednio w głównym obiekcie JSON. API zwraca tylko udostępnione pola; jeżeli potrzebujesz ID w wyniku, również udostępnij odpowiednie pole.

Przykład PHP: odczyt i aktualizacja #

<?php
$base = rtrim(getenv('BS4_BASE_URL'), '/');
$token = getenv('BS4_API_TOKEN');
$id = 123;
$ch = curl_init($base . '/api/company/' . $id);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $token, 'Accept: application/json'],
    CURLOPT_TIMEOUT => 20,
]);
$raw = curl_exec($ch);
if ($raw === false) throw new RuntimeException(curl_error($ch));
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$answer = json_decode($raw, true, 512, JSON_THROW_ON_ERROR);
if ($http >= 400 || ($answer['success'] ?? false) !== true) {
    throw new RuntimeException($answer['errors']['message'] ?? 'API error');
}
$company = $answer['results'][0] ?? null;
// Do aktualizacji użyj PUT pod ten sam adres i treści:
// {"name":"Nowa nazwa firmy","vat_id":"1234567890"}

Ważne zachowania #

  • Nie ma ogólnego stronicowania offset/cursor w pokazanym GET. Limit ogranicza liczbę zwróconych obiektów; nie jest numerem strony.
  • Nieznany alias pola przy zapisie może zostać pominięty i odnotowany w historii. Po zapisie odczytaj wartości, na których zależy integracji.
  • POST i PUT różnią się kontrolą pól — zasady opisano w instrukcji konfiguracji konektora.
  • W API 1.02 status HTTP odpowiada błędowi; utworzenie obiektu zwraca HTTP 201. Starsze instalacje mogą wymagać sprawdzania success i errors mimo HTTP 200.
  • Automatyczne ponowienie POST po zerwaniu połączenia może utworzyć drugi obiekt. Najpierw sprawdź wynik w BS4.

Powiązane instrukcje #

Leave a Reply