Poniższa dokumentacja zawiera instrukcje dotyczące łączenia się z backendem aplikacji. Aby połączyć się z backendem aplikacji, należy wprowadzić token.
URL: https://api.goodloading.com/api/external/calculation
POST
Request Headers
Nazwa | Wartość | Wymagane | Opis |
---|---|---|---|
Authorization | Bearer <token> | Tak | Klucz do autoryzacji |
Request Body
Pole | Typ | Wymagane | Wartość |
---|---|---|---|
name | string | Nie | Nazwa projektu |
note | string | Nie | Opis projektu |
loads | array of Loads | Tak | Tablica z ładunkami |
loadingSpaces | array of Loading Spaces | Tak | Tablica z przestrzeniami ładunkowymi |
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. |
options.newAlgorithm | boolean | Nie | Ustawienie wartości na true powoduje, że zostanie użyty nowy algorytm. Domyślna wartość: true. |
options.loadingOrder | string | Nie | Wartości: „default” : w oparciu o kolejność obiektów ładunków „weight” : na podstawie wagi ładunków „volume” : na podstawie objętości ładunków „priority” : na podstawie priorytetu ładunków |
options.multiStops | boolean | Nie | Ustawienie wartości na false powoduje, że multi przestaje być brane pod uwagę. Domyślna wartość: false. |
options.arrangeOptimally | boolean | Nie | Włączenie funkcji „układaj optymalnie” spowoduje, że algorytm będzie szukał dla ładunków ułożenia z zachowaniem jak największej wolnej przestrzeni, bez względu na kolejność ich dodania. Domyślna wartość: false. |
Załadunek
Nazwa | Wartość | Wymagane | Opis |
---|---|---|---|
id | number | Nie | ID ładunku |
quantity | integer | Tak | Ilość ładunków. Musi być liczbą całkowitą większą od 0. |
name | string | Tak | Nazwa ładunku |
length | number | Tak | Długość jednego ładunku. Musi być większa od 0. |
width | number | Tak | Szerokość jednego ładunku. Musi być większa od 0. |
height | number | Tak | Wysokość jednego ładunku. Musi być większa od 0. |
weight | number | Tak | Waga jednego ładunku. Musi być większa lub równa 0. |
priority | integer | Nie | Priorytet ładunku. Wartość musi być liczbą całkowitą większą lub równą 0. Wartość domyślna: 0. |
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. |
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. |
rotateFreely | boolean | Nie | Przyjmuje true lub false. Ustawienie wartości true pozwala na zastąpienie wymiarów innymi podczas obliczania, tj. umożliwia obracanie obciążenia w dowolną stronę. Wartość domyślna false. |
color | string | Nie | Wczytaj kolor w formacie kodu szesnastkowego (hex code). |
origin | {id: number, name: string} |
Nie | Miejsce załadunku ładunku (multi stops) |
destination | {id: number, name: string} |
Nie | Miejsce rozładunku ładunku (multi stops) |
pctSupport | number | Nie | Procent obsługiwanej powierzchni ładunku |
alongFloor | boolean | Nie | Przyjmuje prawdę lub fałsz. Ustawienie wartości true powoduje, że obciążenia będą ładowane wzdłuż podłogi. |
maxWeightOnTop | number | Nie | Maksymalny ciężar, jaki można umieścić nad ładunkiem. |
boxesAllowedBellow | array of numbers | Nie | Tablica id pudełek, które można umieścić pod ładunkiem. |
loadType | number | Nie | 0:ładunek sześcienny, 1:beczka, 2:rura domyślnie(0) |
Przestrzeń ładunkowa
Nazwa | Wartość | Wymagane | Opis |
---|---|---|---|
quantity | integer | Tak | Ilość przestrzeni ładunkowych. Musi być liczbą całkowitą większą niż 0 |
name | string | Tak | Nazwa przestrzeni ładunkowej |
type | string | Tak | Typ przestrzeni ładunkowej. Można ustawić jedną z następujących wartości: – „pojazd” [domyślnie] – „kontener morski” – „kontener lotniczy x” – „kontener lotniczy y” – „paleta” |
parts | array | Tak | Tablica przestrzeni przestrzeni ładunkowej. Np. zestaw będzie miał dwie części. |
part.length | number | Tak | Długość części przestrzeni ładunkowej. Musi być większa niż 0. |
part.width | number | Tak | Szerokość części przestrzeni ładunkowej. Musi być większa niż 0. |
part.height | number | Tak | Wysokość części przestrzeni ładunkowej. Musi być większa niż 0. |
part.limit | number | Tak | Ładowność częściowa przestrzeni ładunkowej. Musi być większa lub równa 0. |
part.axis | array | Tak | Tablica osi przestrzeni ładunkowej. Jeśli jest wskazana, musi zawierać dokładnie dwa elementy. |
part.axi.distanceFromSpaceFront | number | Tak | Odległość osi od początku przestrzeni ładunkowej. |
part.axi.emptySpaceLoad | number | Tak | Obciążenie osi przy pustej przestrzeni ładunkowej. Wartość musi być liczbą większą lub równą 0. |
part.axi.maxLoad | number | Tak | Najwyższe dopuszczalne obciążenie osi. Wartość musi być liczbą większą lub równą 0. |
part.loadingSide | string | Nie | Sposób załadunku przestrzeni ładunkowej. Można ustawić jedną z czterech wartości: „back” [domyślne] „top” „left” „right” |
stops | array | Nie | Seria przystanków |
stop.id | number | Tak | ID przystanku |
stop.name | string | Tak | Nazwa przystanku |
stop.address | string | Nie | Adres przystanku |
stop.city | string | Nie | Miasto przystanku |
stop.country | string | Nie | Kraj przystanku |
stop.postalCode | string | Nie | Kod pocztowy przystanku |
stop.coordinates | string | Nie | Współrzędne lokalizacji przystanku |
stop.coordinates.lat | number | Tak | Szerokość geograficzna przystanku |
stop.coordinates.lon | number | Tak | Długość geograficzna przystanku |
Przykład zapytania
{ "loads": [ { "id": 12, "quantity": 2, "name": "test load 1", "length": 120, "width": 80, "height": 100, "weight": 100, "priority": 0, "stacking": true, "allowToRotate": true, "origin": { "id": 1, "name": "stop 1" }, "destination": { "id": 3, "name": "stop 3" }, "pctSupport": 90, "alongFlooor": true, "maxWeightOnTop": 100, "boxesBelowAllowed": [2] }, { "id": 2, "quantity": 3, "name": "test load 2", "length": 100, "width": 60, "height": 20, "weight": 100, "priority": 0, "stacking": 2, "allowToRotate": true, "origin": { "id": 1, "name": "stop 1" }, "destination": { "id": 2, "name": "stop 2" } } ], "loadingSpaces": [ { "quantity": 1, "name": "test truck 2", "stops": [ { "id": 1, "name": "stop 1" }, { "id": 2, "name": "stop 2" }, { "id": 3, "name": "stop 3" } ], "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, "newAlgorithm": true, "multiStops": true } }
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. “vehicle” “sea” “air x” “air y” “pallet” |
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 (single stop) |
loadingSpace.part.stops | array | Przystanki informują o danej części przestrzeni ładunkowej (multi stop) |
loadinfSpace.part.stop.stopId | number | Identyfikator przystanku |
loadingSpace.part.stop.name | string | Nazwa przystanku |
loadingSpace.part.stop.summary | json | Podsumowanie dla danej części przestrzeni ładunkowej |
loadingSpace.part.stop.summary.occupiedLdm | number | Zajęte LDMy |
loadingSpace.part.stop.summary.freeLdm | number | Wolne LDM |
loadingSpace.part.stop.summary.occupiedSurface | number | Zajęta przestrzeń |
loadingSpace.part.stop.summary.freeSurface | number | Wolna przestrzeń |
loadingSpace.part.stop.summary.occupiedVolume | number | Zajęta objętość |
loadingSpace.part.stop.summary.freeVolume | number | Wolna objętość |
loadingSpace.part.stop.summary.percentLdmUsd | number | Wykorzystane metry ładunkowe (procent) |
loadingSpace.part.stop.summary.percentVolumeUsd | number | Wykorzystana objętość (w procentach) |
loadingSpace.part.stop.loads | json | Ładunki określone w danej części przestrzeni ładunkowej na danym przystanku. |
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 |
loadingSpace.part.summary.occupiedSurface | Zajęta powierzchnia | |
loadingSpace.part.summary.freeSurface | number | Wolna powierzchnia |
loadingSpace.part.summary.occupiedVolume | number | Zajęta objętość |
loadingSpace.part.summary.freeVolume | number | Wolna objętość |
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 2", "parts": [ { "height": 200, "length": 1300, "width": 200, "limit": 24000, "loads": [], "stops": [ { "name": "stop 1", "id": 1, "loads": [ { "id": 10012, "allowToRotate": true, "stacking": null, "name": "test load 1", "loadType": 0, "priority": 0, "quantity": 2, "width": 100, "length": 80, "height": 120, "weight": 100, "diameter": 0, "origin": { "id": 1, "name": "stop 1" }, "destination": { "id": 3, "name": "stop 3" }, "placement": [ { "height": 120, "length": 80, "width": 100, "loadsPerAxis": { "x": 1, "y": 1, "z": 1 }, "position": { "x": 0, "y": 0, "z": 0 } }, { "height": 120, "length": 80, "width": 100, "loadsPerAxis": { "x": 1, "y": 1, "z": 1 }, "position": { "x": 100, "y": 0, "z": 0 } } ] }, { "id": 10002, "allowToRotate": true, "stacking": 2, "name": "test load 2", "loadType": 0, "priority": 0, "quantity": 3, "width": 100, "length": 20, "height": 60, "weight": 100, "diameter": 0, "origin": { "id": 1, "name": "stop 1" }, "destination": { "id": 2, "name": "stop 2" }, "placement": [ { "height": 60, "length": 20, "width": 100, "loadsPerAxis": { "x": 1, "y": 1, "z": 1 }, "position": { "x": 0, "y": 0, "z": 80 } }, { "height": 60, "length": 20, "width": 100, "loadsPerAxis": { "x": 1, "y": 1, "z": 1 }, "position": { "x": 100, "y": 0, "z": 80 } }, { "height": 60, "length": 20, "width": 100, "loadsPerAxis": { "x": 1, "y": 1, "z": 1 }, "position": { "x": 0, "y": 0, "z": 100 } } ] } ] }, { "name": "stop 2", "id": 2, "loads": [ { "id": 10012, "allowToRotate": true, "stacking": null, "name": "test load 1", "loadType": 0, "priority": 0, "quantity": 2, "width": 100, "length": 80, "height": 120, "weight": 100, "diameter": 0, "origin": { "id": 1, "name": "stop 1" }, "destination": { "id": 3, "name": "stop 3" }, "placement": [ { "height": 120, "length": 80, "width": 100, "loadsPerAxis": { "x": 1, "y": 1, "z": 1 }, "position": { "x": 0, "y": 0, "z": 0 } }, { "height": 120, "length": 80, "width": 100, "loadsPerAxis": { "x": 1, "y": 1, "z": 1 }, "position": { "x": 100, "y": 0, "z": 0 } } ] } ] }, { "name": "stop 3", "id": 3, "loads": [] } ], "summary": { "freeLdm": 1300, "occupiedLdm": 0, "freeSurface": 26000000, "occupiedSurface": 0, "freeVolume": 520000000000, "occupiedVolume": 0 }, "axis": [ { "distanceFromSpaceFront": -200, "emptySpaceLoad": 800, "maxLoad": 10000, "addedLoad": 545.83 }, { "distanceFromSpaceFront": 1000, "emptySpaceLoad": 800, "maxLoad": 10000, "addedLoad": 154.17 } ] } ], "type": "vehicle" } ], "notFittedLoads": [], "options": { "allowOverweight": false, "unit": "cm", "keepLoadsTogether": false, "newAlgorithm": true, "multiStops": true, "arrangeOptimally": false, "userOrder": false, "additionOrder": false, "volumeOrder": false, "weightOrder": false, "keepGroupsInGivenSpaces": false, "isMagnetOn": false }, "_links": [ { "rel": "preview", "href": "http://localhost:4200/session?id=07d695ae-4ce2-47fb-98da-295c1ad87d6a" } ] }
Rekomendacje API
URL: https://api.goodloading.com/api/external/calculation/recommendation
POST
Request Headers
Nazwa | Wartość | Wymagane | Opis |
---|---|---|---|
Authorization | Bearer <token> | Tak | Klucz do autoryzacji |
Request Body
Nazwa | Wartość | Wymagane | Opis |
---|---|---|---|
name | string | Nie | Nazwa projektu |
note | string | Nie | Opis projektu |
loads | array of Loads | Tak | Tablica z ładunkami |
loadingSpaces | array of Loading Spaces | Nie | Tablica z przestrzeniami ładunkowymi |
options | json | Tak | Opcje kalkulacji |
options.allowOverweight | boolean | Nie | Ustawienie wartości true spowoduje, że ładunki nie zostaną rozłożone w przestrzeni ładunkowej, jeśli ciężar przekroczy dopuszczalną ładowność. Wartość domyślna: false. |
options.unit | string | Nie | Jednostki wskazanych wymiarów. Można ustawić jedną z dwóch wartości: – „cm” [Domyślne] – „lb” |
options.newAlgorithm | boolean | Nie | Ustawienie wartości true powoduje użycie nowego algorytmu. Wartość domyślna: true. |
options.loadingOrder | string | Nie | Wartości “default” : na podstawie kolejności ładunków “weight” : na podstawie wagi ładunków “volume” : na podstawie objętości ładunków “priority” : na podstawie priorytetyzacji ładunków |
options.includeSavedLoadingSpaces | boolean | Nie | Dołącz zapisane przestrzenie ładowania na koncie administratora, aby polecić. Wartość domyślna: false. |