# Informacje podstawowe

Główny punkt dostępowy: https://{instance-name}.timeharmony.pl/api/ext/

{instance-name} - nazwa instancji klienta

API obsługuje tylko zawartość typu application/json.

Wszystkie żądania muszą być szyfrowane i wykonywane na protkole HTTPS. Żądania HTTP bez szyfrowania będą odrzucane.


# Zwracane kody HTTP i ich znaczenie:

  • 200 - żądanie przetworzone prawidłowo
  • 202 - żądanie przyjęte, nic nie zwraca
  • 400 - błąd w przetwarzaniu, zwracany jest obiekt opisujący błąd
  • 401 - brak klucza API, nic nie zwraca
  • 403 - brak uprawnień do wykonania akcji, nic nie zwraca
  • 404 - brak zasobu, nic nie zwraca
  • 405 - niedozwolona metoda, nic nie zwraca
  • 409 - konflikt wywołań, prawdopodobnie podany klucz X-Idempotency-Key został wcześniej użyty dla innej metody
  • 429 - zbyt częste wywołania API
  • 5XX - inne błędy po strone Time Harmony, nic nie zwraca

# Format danych

  • string - tekst, ciąg znaków
  • datetime - data i czas zgodnie z formatem ISO8601, np: "2008-04-10T06:30:00"
  • date - data bez czasu np: "2008-04-10" yyyy-MM-dd
  • time - czas bez daty np: "14:00:00" HH:mm:ss
  • shorttime - czas bez sekund i bez daty np: "14:00" HH:mm
  • duration - całkowita ilość godzin oraz minut i sekund, np.: "26:30:15" oznacza 1 dzień, 2 godziny, 30 minut i 15 sekund HH:mm:ss
  • decimal - liczba ułamkowa, np.: 1.5 (invariant)
  • int - liczba całkowita, np.: 1
  • bool - wartość logiczna, np.: true, false
  • guid - uuid
  • object - obiekt definiujący encję
  • list - obiekt definiujący listę obiektów oraz metadane do jej obsługi
  • array - lista obiektów

# Nagłówki

Opis nagłówków oczekiwanych lub wysyłanych podczas przetwarzania żądań do serwera.

# Żądania

Wymagane:

  • Authorization - Uwierzytelnienie odbywa się poprzez HTTP Basic Auth. Żądanie bez prawidłowego klucza zostanie odrzucone. Na przykład: Authorization: Basic 910796d20ab54cd9800f7647360a298f
  • Accept - */* lub application/json
  • Content-Type - application/json

Opcjonalne:

  • X-Idempotency-Key - Podanie tego klucza dla metody wywołania POST spowoduje, że kolejne wywołania z tą samą wartością zostaną pominięte. Jako klucz zalecamy stosowanie UUID (GUID), ale może być inny dowolny ciąg znaków. Maksymalna rozmiar to 32 bajty.

Rekomendowane:

  • Accept-Encoding - gzip, deflate, br

# Odpowiedzi

  • X-Request-Id - Każde wywołanie metod API zwraca w odpowiedzi unikalny identyfikator.

# Definicja obiektu błędu

Definicja obiektu error

# Atrybuty

message string
Informacja opisująca treść błędu.

code int
Numer kodu błędu.

param string
Nazwa atrybutu. Dostępna jeśli błąd związany jest z konkretnym atrybutem obiektu.

{
    "errors": [
        {
            "message": "Pracownik o podanym id już istnieje.",
            "code": 1,
            "param": "employee"
        },
        { ... }
    ]
}

# Definicja obiektu listy

Definicja obiektu list

# Atrybuty

paging object
Obiekt reprezentujący informacje o stronicowaniu wyników.

Atrybuty

current int
Numer strony.

total int
Liczba wszystkich dostępnych stron z wynikami.

items array
Lista obiektów.

{
    "paging": {
        "current": 1,
        "total": 1
    },
    "items": [
        { Object },
        { Object },
        { ... }
    ]
}