Dokumentacja

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:

  • 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
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.