Dokumentacja

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"
       }
   ]
}