Dokumentacja

Poniższa dokumentacja zawiera informacje o sposobie łączenia się z backendem i frontendem aplikacji. Aby połączyć się z backendem aplikacji należy wprowadzić token. Integracja z frontendem nie wymaga tokena.

Wypełnij formularz aby otrzymać klucz aktywacyjny.

  • Dokumentacja Backend
  • Dokumentacja Frontend

Dokumentacja Backend

Wersja Beta

Endpoint

https://app.goodloading.com/api/external/calculation

POST /calculation

Request Headers

Nazwa Wartość Wymagane Opis
Authorization Bearer <token> Tak Klucz do autoryzacji

Request Body

Pole Typ Wymagane Wartość
loads array Tak Tablica z ładunkami
load.quantity integer Tak Ilość ładunków. Musi być liczbą całkowitą większą od 0.
load.name string Tak Nazwa ładunku
load.length number Tak Długość jednego ładunku. Musi być większa od 0.
load.width number Tak Szerokość jednego ładunku. Musi być większa od 0.
load.height number Tak Wysokość jednego ładunku. Musi być większa od 0.
load.weight number Tak Waga jednego ładunku. Musi być większa lub równa 0.
load.priority integer Nie Priorytet ładunku. Wartość musi być liczbą całkowitą większą lub równą 0. Wartość domyślna: 0.
load.stacking boolean / integer Nie Piętrowanie ładunku. Wartość false oznacza, że jest nie piętrowalny, wartość true oznacza, że jest piętrowalny. Podanie liczby całkowitej większej od 0 oznacza, że ładunek jest piętrowalny z ograniczoną liczbą pięter. Wartość domyślna: true.
load.allowToRotate boolean Nie Przyjmuje true lub false. Ustawienie wartości na true pozwala przy obliczeniach zamieniać szerokość z długością, czyli obracać ładunek względem podstawy. Wartość domyślna true
loadingSpaces array Tak Tablica z przestrzeniami ładunkowymi
loadingSpace.
quantity
integer Tak Ilość przestrzeni ładunkowych. Musi być liczbą całkowitą większą od 0.
loadingSpace.name string Tak Nazwa przestrzeni ładunkowej.
loadingSpace.type string Nie Typ przestrzeni ładunkowej. Można przekazać jedną z trzech wartości:

  • vehicle

  • container

  • other

Domyślnie ustawiona jest other.

loadingSpace.parts array Tak Tablica z częściami przestrzeni ładunkowej. Np zestaw będzie miał dwie części
loadingSpace.part.
length
number Tak Długość części przestrzeni ładunkowej. Musi być większa od 0.
loadingSpace.part.
width
number Tak Szerokość części przestrzeni ładunkowej. Musi być większa od 0.
loadingSpace.part.
height
number Tak Wysokość części przestrzeni ładunkowej. Musi być większa od 0.
loadingSpace.part.
limit
number Tak Ładowność części przestrzeni ładunkowej. Musi być większa lub równa 0.
loadinSpace.part.
axis
array Nie Tablica z osiami przestrzeni ładunkowej. Jeżeli jest podana musi zawierać dokładnie dwa elementy.
loadingSpace.part.
axi.distanceFromSpaceFront
number Tak Odległość osi od początku przestrzeni ładunkowej.
loadingSpace.part.
axi.emptySpaceLoad
number Tak Nacisk na oś przy pustej przestrzeni ładunkowej. Wartość musi być liczbą większą lub równą 0.
loadingSpace.part.
axi.maxLoad
number Tak Największy dopuszczalny nacisk na oś. Wartość musi być liczbą większą lub równą 0.
options json Tak Opcje obliczeń
options.allowOverweight boolean Nie Ustawienie wartości na true spowoduje, że ładunki nie będą ustawiane na przestrzeni ładunkowej jeżeli waga przekroczy dopuszczalną ładowność. Domyślna wartość: false.
options.unit string Nie Jednostki podanych wymiarów. Można wybrać jedną z dwóch wartości:

  • cm

  • lb

Domyślna wartość: “cm”

options.keepLoadsTogether boolean Nie Ustawienie wartości na true powoduje, że ładunki z danej grupy będą ustawiane razem. Domyślna wartość: false
Przykład zapytania
{
  "loads": [
      {
          "quantity": 10,
          "name": "test load 1",
          "length": 120,
          "width": 80,
          "height": 100,
          "weight": 100,
          "priority": 0,
          "stacking": true,
          "allowToRotate": true
      },{
          "quantity": 300,
          "name": "test load 2",
          "length": 100,
          "width": 60,
          "height": 20,
          "weight": 100,
          "priority": 0,
          "stacking": 2,
          "allowToRotate": true
      }
  ],
  "loadingSpaces": [
      {
          "quantity": 1,
          "name": "test truck",
          "parts": [
              {
                  "length": 1300,
                  "width": 200,
                  "height": 200,
                  "limit": 24000,
                  "axis": [
                      {
                          "distanceFromSpaceFront": -200,
                          "emptySpaceLoad": 800,
                          "maxLoad": 10000
                      },
                      {
                          "distanceFromSpaceFront": 1000,
                          "emptySpaceLoad": 800,
                          "maxLoad": 10000
                      }
                  ]
              }
          ],
          "type": "vehicle"
      }
  ],
  "options": {
      "allowOverweight": false,
      "unit": "cm",
      "keepLoadsTogether": false
  }
}

Response

Http status Opis
200 Zwraca wynik obliczeń
400 Błąd w walidacji danych wejściowych
401 Błąd autoryzacji
429 Przekroczono dozwoloną liczbę zapytań

Response Body

Nazwa Typ Wartość
loadingSpaces array Tablica z przestrzeniami ładunkowymi
loadingSpace.id integer Identyfikator przestrzeni ładunkowej
loadingSpace.name string Nazwa przestrzeni ładunkowej.
loadingSpace.type string Typ przestrzeni ładunkowej.
loadingSpace.parts array Tablica z częściami przestrzeni ładunkowej. Np zestaw będzie miał dwie części
loadingSpace.part.length number Długość części przestrzeni ładunkowej.
loadingSpace.part.width number Szerokość części przestrzeni ładunkowej.
loadingSpace.part.height number Wysokość części przestrzeni ładunkowej.
loadingSpace.part.limit number Ładowność części przestrzeni ładunkowej.
loadinSpace.part.axis array Tablica z osiami przestrzeni ładunkowej.
loadingSpace.part.
axi.distanceFromSpaceFront
number Odległość osi od początku przestrzeni ładunkowej.
loadingSpace.part.
axi.emptySpaceLoad
number Nacisk na oś przy pustej przestrzeni ładunkowej.
loadingSpace.part.
axi.maxLoad
number Największy dopuszczalny nacisk na oś.
loadingSpace.part.
axi.addedLoad
number Nacisk na oś ustawionych ładunków.
loadingSpace.part.loads array Ładunki ustawione w danej części przestrzeni ładunkowej
loadingSpace.part.load.id number Identyfikator ładunku
loadingSpace.part.load.allowToRotate boolean Wartość, która została podana dla opcji swobodnego obracania
loadingSpace.part.load.quantity integer Ilość ładunków z danej grupy, która została ustawiona w danej części przestrzeni
loadingSpace.part.load.name string Nazwa ładunku
loadingSpace.part.load.priority integer Priorytet ładunku
loadingSpace.part.load.weight number Waga jednego ładunku.
loadingSpace.part.load.length number Podstawowa długość ładunku.
loadingSpace.part.load.width number Podstawowa szerokość ładunku.
loadingSpace.part.load.height number Podstawowa wysokość ładunku.
loadingSpace.part.load.stacking boolean / integer Wartość, która została wybrana dla piętrowania ładunku
loadingSpace.part.load.placement array Tablica z rozłożeniem ładunków w danej części przestrzeni ładunkowej.
loadingSpace.part.load.placement.length number Długość ustawionego ładunku. Wartości długości i szerokości mogą zostać zamienione w stosunku do podstawowych wartości, jeżeli opcja allowToRotate jest ustawiona na true.
loadingSpace.part.load.placement.width number Szerokość ustawionego ładunku.
loadingSpace.part.load.placement.height number Wysokość ustawionego ładunku.
loadingSpace.part.load.placement.position json Pozycja ładunku w części przestrzeni ładunkowej. Patrząc od początku przestrzeni pozycja x: 0, y: 0, z: 0 to prawy dolny róg przestrzeni.

Przyjęte oznaczenia osi:

  • x: wzdłuż szerokości przestrzeni

  • y: wzdłuż wysokości przestrzeni

  • z: wzdłuż długości przestrzeni

loadingSpace.part.load.placement.position.x number Pozycja na osi x
loadingSpace.part.load.placement.position.y number Pozycja na osi y
loadingSpace.part.load.placement.position.z number Pozycja na osi z
loadingSpace.part.load.placement.loadsPerAxis json Ilość ładunków ustawionych wzdłuż danej osi
loadingSpace.part.load.placement.loadsPerAxis.x integer Ilość ładunków wzdłuż osi x.
loadingSpace.part.load.placement.loadsPerAxis.y integer Ilość ładunków wzdłuż osi y.
loadingSpace.part.load.placement.loadsPerAxis.z integer Ilość ładunków wzdłuż osi z.
loadingSpace.part.summary json Podsumowanie dla danej części przestrzeni ładunkowej.
loadingSpace.part.summary.occupiedLdm number Zajęte ldm
loadingSpace.part.summary.freeLdm number Wolne ldm
notFittedLoads array Ładunki, które nie zmieściły się na żadną przestrzeń ładunkową
notFittedLoad.id number Identyfikator ładunków
notFittedLoad.length number Długość ładunków
notFittedLoad.width number Szerokość ładunków
notFittedLoad.height number Wysokość ładunków
notFittedLoad.weight number Waga jednego ładunku
notFittedLoad.quantity integer Ilość ładunków
notFittedLoad.priority integer Priorytet
notFittedLoad.name string Nazwa ładunków
notFittedLoad.stacking boolean / integer Wartość, która została wybrana dla piętrowania ładunku
notFittedLoad.allowToRotate boolean Wartość, która została podana dla opcji swobodnego obracania
options json Opcje obliczeń
options.allowToOverweight boolean Wybrana wartość dla opcji pozwalającej ładować ponad maksymalną ładowność.
options.unit string Wybrana jednostka
options.keepLoadsTogether boolean Wybrana wartość dla opcji utrzymującej ładunki z danej grupy przy sobie.
_links array Tablica z dalszymi możliwymi akcjami
link.rel string relacja
link.href string adres
Przykład odpowiedzi
{
   "loadingSpaces": [
       {
           "id": 1,
           "name": "test truck",
           "parts": [
               {
                   "height": 200,
                   "length": 1300,
                   "width": 200,
                   "limit": 24000,
                   "loads": [
                       {
                           "id": 1,
                           "allowToRotate": true,
                           "stacking": true,
                           "name": "test load 1",
                           "priority": 0,
                           "quantity": 10,
                           "width": 120,
                           "length": 80,
                           "height": 100,
                           "weight": 100,
                           "placement": [
                               {
                                   "height": 100,
                                   "length": 80,
                                   "width": 120,
                                   "loadsPerAxis": {
                                       "x": 1,
                                       "y": 2,
                                       "z": 3
                                   },
                                   "position": {
                                       "x": 0,
                                       "y": 0,
                                       "z": 0
                                   }
                               },
                               {
                                   "height": 100,
                                   "length": 120,
                                   "width": 80,
                                   "loadsPerAxis": {
                                       "x": 1,
                                       "y": 2,
                                       "z": 2
                                   },
                                   "position": {
                                       "x": 120,
                                       "y": 0,
                                       "z": 0
                                   }
                               }
                           ]
                       },
                       {
                           "id": 2,
                           "allowToRotate": true,
                           "stacking": 2,
                           "name": "test load 2",
                           "priority": 0,
                           "quantity": 230,
                           "width": 100,
                           "length": 60,
                           "height": 20,
                           "weight": 100,
                           "placement": [
                               {
                                   "height": 20,
                                   "length": 60,
                                   "width": 100,
                                   "loadsPerAxis": {
                                       "x": 2,
                                       "y": 2,
                                       "z": 17
                                   },
                                   "position": {
                                       "x": 0,
                                       "y": 0,
                                       "z": 240
                                   }
                               },
                               {
                                   "height": 20,
                                   "length": 60,
                                   "width": 100,
                                   "loadsPerAxis": {
                                       "x": 2,
                                       "y": 2,
                                       "z": 17
                                   },
                                   "position": {
                                       "x": 0,
                                       "y": 40,
                                       "z": 240
                                   }
                               },
                               {
                                   "height": 20,
                                   "length": 60,
                                   "width": 100,
                                   "loadsPerAxis": {
                                       "x": 2,
                                       "y": 2,
                                       "z": 17
                                   },
                                   "position": {
                                       "x": 0,
                                       "y": 80,
                                       "z": 240
                                   }
                               },
                               {
                                   "height": 20,
                                   "length": 60,
                                   "width": 100,
                                   "loadsPerAxis": {
                                       "x": 2,
                                       "y": 2,
                                       "z": 6
                                   },
                                   "position": {
                                       "x": 0,
                                       "y": 120,
                                       "z": 240
                                   }
                               },
                               {
                                   "height": 20,
                                   "length": 60,
                                   "width": 100,
                                   "loadsPerAxis": {
                                       "x": 1,
                                       "y": 2,
                                       "z": 1
                                   },
                                   "position": {
                                       "x": 0,
                                       "y": 160,
                                       "z": 240
                                   }
                               }
                           ]
                       }
                   ],
                   "summary": {
                       "freeLdm": 40,
                       "occupiedLdm": 1260
                   },
                   "axis": [
                       {
                           "distanceFromSpaceFront": -200,
                           "emptySpaceLoad": 800,
                           "maxLoad": 10000,
                           "addedLoad": 6265
                       },
                       {
                           "distanceFromSpaceFront": 1000,
                           "emptySpaceLoad": 800,
                           "maxLoad": 10000,
                           "addedLoad": 17735
                       }
                   ]
               }
           ],
           "type": "vehicle"
       }
   ],
   "notFittedLoads": [
       {
           "id": 2,
           "allowToRotate": true,
           "stacking": 2,
           "name": "test load 2",
           "priority": 0,
           "quantity": 70,
           "width": 60,
           "length": 100,
           "height": 20,
           "weight": 100
       }
   ],
   "options": {
       "allowOverweight": false,
       "unit": "cm",
       "keepLoadsTogether": false
   },
   "_links": [
       {
           "rel": "preview",
           "href": "https://app.goodloading.com/session?id=f4a2fe64-0882-4cb9-afa1-1f8e4a29799b"
       }
   ]
}

Dokumentacja Frontend

Interfejs Goodloading API jest osadzany za pomocą tagu “script”, który można dodać bezpośrednio do pliku HTML lub dynamicznie za pomocą oddzielnego pliku JavaScript.

<script async src=”https://app.goodloading.com/embed?api-key=YOUR_API_KEY”></script>

W miejsce “YOUR_API_KEY” należy podać prawidłowy token API.

Funkcje aplikacji

Informacje o koncie użytkownika:

Api.account
Typ: object

Pole Typ Wartość
email string Email użytkownika
role string Rola użytkownika
firstName string Imię użytkownika
lastName string Nazwisko użytkownika
companyName string Nazwa firmy
trucks object Zapisane przestrzenie ładunkowe
trucks.standard array Lista standardowych przestrzeni ładunkowych
trucks.user array Lista przestrzeni ładunkowych użytkownika
loads object Zapisane ładunki
loads.standard array Lista standardowych ładunków
loads.user array Lista ładunków użytkownika
savedProjects array Lista zapisanych projektów
country string Kraj użytkownika
company object Informacje o firmie
company.country string Kraj firmy
company.legalName string Nazwa firmy
company.locality string Miasto firmy
company.postalCode string Kod pocztowy firmy
company.streetAddress string Adres firmy
company.vatId string Numer nip firmy
isPremium boolean Czy użytkownik posiada premium

Informacje o obecnej przestrzeni załadunkowej:

Api.loadingSpace
Typ: array

Pole Typ Wartość
name string Nazwa przestrzeni ładunkowej
dimensions object Wymiary przestrzeni ładunkowej
dimensions.width number Szerokość przestrzeni ładunkowej
dimensions.length number Długość przestrzeni ładunkowej
dimensions.height number Wysokość przestrzeni ładunkowej
loadCapacity number Ładowność przestrzeni ładunkowej
freeLdm number Wolne LDM
takenLdm number Zajęte LDM
loadedLoads number Załadowane ładunki
notLoadedLoads number Nie załadowane ładunki (ładunki poza przestrzenią)
occupiedVolume number Wykorzystana objętość
freeVolume number Pozostała objętość
totalWeight number Łączna waga załadowanych
freeArea number Wolna przestrzeń
frontAxi object Informacje o przedniej osi 
frontAxi.addedLoad number Obciążenie osi przedniej
frontAxi.emptySpaceLoad number Nacisk bez obciążenia
frontAxi.maxLoad number Maksymalne obciążenie osi przedniej
rearAxi object Informacje o tylnej osi
rearAxi.addedLoad number Obciążenie osi tylnej
rearAxi.emptySpaceLoad number Nacisk bez obciążenia
rearAxi.maxLoad number Maksymalne obciążenie osi tylnej

Informacje o obecnym załadunku:

Api.loads
typ: object

Typ Wartość
cargoSpaces array Lista przestrzeni ładunkowej
cargoSpaces.cargoSpace array Lista ładunków załadowanych
cargoSpaces.cargoSpace.name string Nazwa ładunku
cargoSpaces.cargoSpace.dimensions object Wymiary ładunku
cargoSpaces.cargoSpace.dimensions.width number Szerokość ładunku
cargoSpaces.cargoSpace.dimensions.length number Długość ładunku
cargoSpaces.cargoSpace.dimensions.height number Wysokość ładunku
cargoSpaces.cargoSpace.quantity number Ilość ładunków
cargoSpaces.cargoSpace.weight number Waga ładunku
cargoSpaces.cargoSpace.totalWeight number Łączna waga ładunków
cargoSpaces.cargoSpace.stackingOption boolean Piętrowanie ładunków
outsideSpace array Lista ładunków poza przestrzenią
outsideSpace.name string Nazwa ładunku
outsideSpace.dimensions object Wymiary ładunku
outsideSpace.dimensions.width number Szerokość ładunku
outsideSpace.dimensions.length number Długość ładunku
outsideSpace.dimensions.height number Wysokość ładunku
outsideSpace.quantity number Ilość ładunków
outsideSpace.weight number Waga ładunku
outsideSpace.totalWeight number Łączna waga ładunków
outsideSpace.stackingOption boolean Piętrowanie ładunków

Dodanie ładowanej przestrzeni:

Api.addLoadingSpace()
Typ: void

Pole Typ Wartość
name string Nazwa przestrzeni ładunkowej
type number Typ przestrzeni ładunkowej:
1 – pojazd2 – kontener3 – inne
quantity number Ilość przestrzeni ładunkowych
length number Długość przestrzeni ładunkowej
width number Szerokość przestrzeni ładunkowej
height number Wysokość przestrzeni ładunkowej
limit number Ładowność przestrzeni ładunkowej
set boolean Czy przestrzeń ładunkowa ma być zestawem?
length1? number Długość naczepy (wymagane przy zestawie)
width1? number Szerokość naczepy (wymagane przy zestawie)
height1? number Wysokość naczepy (wymagane przy zestawie)
limit1? number Ładowność naczepy (wymagane przy zestawie)
axis? array Naciski na osie
id? number ID przestrzeni ładunkowej

Edycja ładowanej przestrzeni:

Api.updateLoadingSpace()
Typ: void

Pole Typ Wartość
name string Nazwa przestrzeni ładunkowej
type number Typ przestrzeni ładunkowej:
1 – pojazd2 – kontener3 – inne
length number Długość przestrzeni ładunkowej
width number Szerokość przestrzeni ładunkowej
height number Wysokość przestrzeni ładunkowej
limit number Ładowność przestrzeni ładunkowej
set boolean Czy przestrzeń ładunkowa ma być zestawem?
length1? number Długość naczepy (wymagane przy zestawie)
width1? number Szerokość naczepy (wymagane przy zestawie)
height1? number Wysokość naczepy (wymagane przy zestawie)
limit1? number Ładowność naczepy (wymagane przy zestawie)
id? number ID przestrzeni ładunkowej

Dodanie załadunku:

Api.addLoad()
Typ: void

Typ Wartość
name string Nazwa załadunku
length number Długość załadunku
width number Szerokość załadunku
height number Wysokość załadunku
weight number Waga załadunku
quantity number Ilość załadunku
stacking boolean Piętrowanie załadunku
allowToRotate boolean Obracanie automatyczne
maxLoadsOnTop? number Ilość pięter
toFirstEmpty? boolean Dodaj do pierwszej wolnej

Edycja załadunku

Api.updateGroupLoad()
Typ: void

Pole Typ Wartość
id number ID załadunku
cargoSpaceId number ID przestrzeni załadunkowej
name? string Nazwa załadunku
length? number Długość załadunku
width? number Szerokość załadunku
height? number Wysokość załadunku
weight? number Waga załadunku
quantity? number Ilość ładunków
stacking? boolean Piętrowanie załadunku