Belgeler

The below documentation provides instructions on how to connect to the backend of the application. To connect to the backend of the application you need to enter a token.

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

POST

Request Headers

Name Value Mandatory Description
Authorization Bearer <token> Yes Authorisation key

Request/ Body

 

Field Type Mandatory Value
name string No Name of the project
note string No Description of the project
loads array of Loads Yes Loads board
loadingSpaces array of Loading Spaces Yes Load space board
options json Yes Calculation options
options.allowOverweight boolean No Setting the value as true will result in not distributing the loads in the load space if the weight exceeds the permissible load capacity. Default value: false.
options.unit string No Units of the indicated dimensions. One of the two values may be set:

– cm
– lb

Default value: “cm”

options.keepLoadsTogether boolean No Setting the value as true will result in distributing the loads from a given group together. Default value: false.
options.newAlgorithm boolean No Setting the value to true causes the new algorithm to be used. Default value: true.
options.loadingOrder string No Values:
“default” : based on the loads object order
“weight” : based on loads’ weight
“volume”” based on loads’ volume
“priority” : based on loads’ priority
options.multiStops boolean No Setting the value to false stops the multi from being considered. Default value: false
options.arrangeOptimally boolean No Enabling “stack optimally” will cause the algorithm to look for loads to be stacked with as much free space as possible, regardless of the order in which they were added. Deefault value: false

Load

Name Value Mandatory Description
id number No Load identifier
quantity integer Yes Loads quantity. Must be an integer greater than 0.
name string Yes Load name
length number Yes One load length. Must be greater than 0.
width number Yes One load width. Must be greater than 0.
height number Yes One load height. Must be greater than 0.
weight number Yes One load weight. Must be greater than or equal to 0.
priority integer Yes Load priority. The value must be an integer greater than or equal to 0. Default value: 0.
stacking boolean / integer Yes Load stacking. The false value means that it is nonstackable, the true value means that it is stackable. Indicating an integer greater than 0 means that the load is stackable with a limited number of stacks. Default value: true
allowToRotate boolean No Assumes true or false. Setting the value as true allows for replacing the width with the length while calculating, i.e. it allows for rotating the load relative to the base. Default value true
rotateFreely boolean No Assumes true or false. Setting the value as true allows for replacing the dimension with eachother while calculating, i.e. it allows for rotating the load on any side. Default value false
color string No Load color in hex code format.
origin {id: number,
name: string}
No Loading location (multi stops)
destination {id: number,
name: string}
No Unloading location (multi stops)
pctSupport number No Percentage of load area served
alongFloor boolean No Assumes true or false. Setting the value to true causes loads to be loaded along the floor
maxWeightOnTop number No Maximum weight that can be placed over the load
boxesAllowedBellow array of numbers No Board id of boxes that can be placed under the load
loadType number No 0: box,1:barrel,2:pipe
default(0)

Loading space

Name Value Mandatory Description
loadingSpace.
quantity
integer Yes Load space quantity. Must be an integer greater than 0.
name string Yes Load space name.
type string No Load space type. One of the following values may be set:

– vehicle.
– sea
– air x
– air y
– pallet
The “vehicle”value is set by default.

parts array Yes Load space parts board. E.g. a set will have two parts
part.length number Yes Load space part length. Must be greater than 0.
part.width number Yes Load space part width. Must be greater than 0.
part.height number Yes Load space part height. Must be greater than 0.
part.limit number Yes Load space part load capacity. Must be greater than or equal to 0.
part.axis array No Load space axles board. If indicated, it must include exactly two elements.
part.axi.distanceFromSpaceFront number Yes Axle distance from the beginning of the load space.
part.axi.emptySpaceLoad number Yes Axle load with an empty load space. The value must be a number greater than or equal to 0.
part.axi.maxLoad number Yes The highest permissible axle load. The value must be a number greater than or equal to 0.
stops array No A series of stops.
stop.id number Yes Stop identifier.
stop.name string Yes Stop name
stop.address string No Stop address
stop.city string No Stop city
stop.country string No Stop country
stop.postalCode string No Stop postal code
stop.coordinates string No Stop location coordinates
stop.coordinates.lat number Yes Stop latitude
stop.coordinates.lon number Yes Stop longitude
Inquiry example
    {
    "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 Description
200 The calculation result is returned
400 Input data validation error
401 Authorisation error
429 Allowed number of inquires has been exceeded

Response Body

Name Type Value
loadingSpaces array Load space board
loadingSpace.id integer Load space identifier
loadingSpace.name string Load space name.
loadingSpace.type string Load space type:
“vehicle”
“sea”
“air x”
“air y”
“pallet”
loadingSpace.parts array Load space parts board. E.g. a set will have two parts.
loadingSpace.part.length number Load space part length.
loadingSpace.part.width number Load space part width.
loadingSpace.part.height number Load space part height.
loadingSpace.part.limit number Load space part load capacity.
loadinSpace.part.axis array Load space axles board.
loadingSpace.part. axi.distanceFromSpaceFront number Axle distance from the beginning of the load space.
loadingSpace.part.
axi.emptySpaceLoad
number Axle load with an empty load space.
loadingSpace.part.
axi.maxLoad
number The highest permissible axle load.
loadingSpace.part.
axi.addedLoad
number Axle load of the distributed loads.

 

loadingSpace.part.loads array Loads stowed in a particular part of the load compartment (single stop).
loadingSpace.part.stops array Stops indicate a particular part of the load compartment (multi stop).
loadinfSpace.part.stop.stopId number Stop identifier.
loadingSpace.part.stop.name string Stop name.
loadingSpace.part.stop.summary json Summary for a given load space part.
loadingSpace.part.stop.summary.occupiedLdm number Occupied Idm.
loadingSpace.part.stop.summary.freeLdm number Free ldm.
loadingSpace.part.stop.summary.occupiedSurface number Occupied area.
loadingSpace.part.stop.summary.freeSurface number Free area.
loadingSpace.part.stop.summary.occupiedVolume number Occupied volume.
loadingSpace.part.stop.summary.freeVolume number Free volume.
loadingSpace.part.stop.summary.percentLdmUsd number Loading meter used (percent).
loadingSpace.part.stop.summary.percentVolumeUsd number Volume used (percent).
loadingSpace.part.stop.loads json Loads specified in a given part of the loading space at a given stop.
loadingSpace.part.load.id number Load identifier
loadingSpace.part.load.allowToRotate boolean Value indicated for the free rotation option.
loadingSpace.part.load.quantity integer Quantity of loads from a given group distributed in a given space part.
loadingSpace.part.load.name string Load name
loadingSpace.part.load.priority integer Load priority
loadingSpace.part.load.weight number One load weight.
loadingSpace.part.load.length number Basic load length.
loadingSpace.part.load.width number Basic load width.
loadingSpace.part.load.height number Basic load height.
loadingSpace.part.load.stacking boolean / integer Value set for stacking the load
loadingSpace.part.load.placement array Board with the distribution of loads in a given load space part.
loadingSpace.part.load.placement.length number Distributed load length. The values of length and width may be replaced in relation to the basic values, if the allowToRotate option is set as true.
loadingSpace.part.load.placement.width number Distributed load width.
loadingSpace.part.load.placement.height number Distributed load height.
loadingSpace.part.load.placement.position json Load position in the load space part. Looking from the beginning of the space, position x: 0, y: 0, z: 0 is the right lower corner of the space.

Assumed axle indication:

  • x: along the space width

  • y: along the space height

  • z: along the space length

loadingSpace.part.load.placement.position.x number Position on the x axle
loadingSpace.part.load.placement.position.y number Position on the y axle
loadingSpace.part.load.placement.position.z number Position on the z axle
loadingSpace.part.load.placement.loadsPerAxis json Quantity of loads distributed along a given axle
loadingSpace.part.load.placement.loadsPerAxis.x integer Quantity of loads along the x axle.
loadingSpace.part.load.placement.loadsPerAxis.y integer Quantity of loads along the y axle.
loadingSpace.part.load.placement.loadsPerAxis.z integer Quantity of loads along the z axle.
loadingSpace.part.summary json Summary for a given load space part.
loadingSpace.part.summary.occupiedLdm number Occupied Idm
loadingSpace.part.summary.freeLdm number Free ldm
loadingSpace.part.summary.occupiedSurface Occupied space
loadingSpace.part.summary.freeSurface number Free space
loadingSpace.part.summary.occupiedVolume number Occupied volume
loadingSpace.part.summary.freeVolume number Free volume
notFittedLoads array Loads which did not fit in any load space
notFittedLoad.id number Loads identifier
notFittedLoad.length number Loads length
notFittedLoad.width number Loads width
notFittedLoad.height number Loads height
notFittedLoad.weight number One load weight
notFittedLoad.quantity integer Loads quantity
notFittedLoad.priority integer Priority
notFittedLoad.name string Loads name
notFittedLoad.stacking boolean / integer Value set for stacking the load
notFittedLoad.allowToRotate boolean Value indicated for the free rotation option
options json Calculation options
options.allowToOverweight boolean Value set for the option allowing for exceeding the maximum load capacity.
options.unit string Unit set
options.keepLoadsTogether boolean Value set for the option keeping the loads from a given group together.
_links array Further possible actions board
link.rel string relation
link.href string address
Answer example
{
    "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"
        }
    ]
}

Recommendation API

URL: https://api.goodloading.com/api/external/calculation/recommendation

POST

Request Headers

Name Value Mandatory Description
Authorization Bearer <token> Yes Authorisation key

Request Body

Field Type Mandatory Value
name string No Name of the project
note string No Description of the project
loads array of Loads Yes Loads board
loadingSpaces array of Loading Spaces No Loading Spaces board to recommend from
options json Yes Calculation options
options.allowOverweight boolean No Setting the value as true will result in not distributing the loads in the load space if the weight exceeds the permissible load capacity. Default value: false.
options.unit string No Units of the indicated dimensions. One of the two values may be set:
– “cm” [Default]
– “lb”
options.newAlgorithm boolean No Setting the value to true causes the new algorithm to be used. Default value: true
options.loadingOrder string No Values:
“default” : based on the loads object order
“weight” : based on loads’ weight
“volume”” based on loads’ volume
“priority” : based on loads’ priority
options.includeSavedLoadingSpaces boolean No Include the saved loading spaces on the admin’s account to recommend. Default value: false