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.
Wersja Beta
Endpoint
https://app.goodloading.com/api/external/calculation
POST /calculation
Nazwa | Wartość | Wymagane | Opis |
---|---|---|---|
Authorization | Bearer <token> | Tak | Klucz do autoryzacji |
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:
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:
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 |
{ "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 } }
Http status | Opis |
---|---|
200 | Zwraca wynik obliczeń |
400 | Błąd w walidacji danych wejściowych |
401 | Błąd autoryzacji |
429 | Przekroczono dozwoloną liczbę zapytań |
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:
|
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 |
{ "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" } ] }
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.
Api.account
Typ: object
Pole | Typ | Wartość |
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 |
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 |
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 |
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 |
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 |
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 |
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 |