Oficjalna dokumentacja API Goodloading

Możliwość aktualizacji w przeglądarce web, projektu utworzonego w API

Wprowadzenie

Standardową ścieżka postępowania odnosnie wykorzystywania serwisu Goodloading, jest:

  • utworzenie Zapytania (Request) – Przykład: Request
  • przetworzenie go przez serwis
  • otrzymanie Response, czyli odpowiedzi z serwisu z informacją o zalecanym rozłożeniu ładunków w żądanej przestrzeni (-ach) ładunkowej (-ych) – Przykład: Response_ver.1
  • wynik przetwarzania można otrzymać również w postaci wizualizacji – Przykład: Wizualizacja Respons ver. 1

Może się jednak okazać, że użytkownik chciałby wprowadzić lekką zmianę w wynikach przetwarzania algorytmu, wówczas ma możliwość:

Request

{
    "loads": [
        {
            "quantity": 6,
            "name": "load 1",
            "length": 120,
            "width": 80,
            "height": 100,
            "weight": 100
        }
],
       "loadingSpaces": [
        {
            "quantity": 1,
            "name": "truck 1",
            "parts": [
                {
                    "length": 800,
                    "width": 200,
                    "height": 200,
                    "limit": 24000
                }
            ]
        }
    ],
  "options": {
            }
}

Response_ver.1

Parametry Response, zgodnie z opisem w Response Body

{
    "loadingSpaces": [
        {
            "id": 1,
            "name": "truck 1",
            "parts": [
                {
                    "height": 200,
                    "length": 800,
                    "width": 200,
                    "limit": 24000,
                    "loads": [
                        {
                            "id": 1,
                            "allowToRotate": true,
                            "stacking": true,
                            "name": "load 1",
                            "loadType": 0,
                            "priority": 0,
                            "quantity": 6,
                            "width": 120,
                            "length": 80,
                            "height": 100,
                            "weight": 100,
                            "diameter": 0,
                            "origin": null,
                            "destination": null,
                            "pctSupport": 100,
                            "alongFloor": false,
                            "boxesBelowAllowed": [],
                            "color": 6989903,
                            "placement": [
                                {
                                    "height": 100,
                                    "length": 80,
                                    "width": 120,
                                    "diameter": 0,
                                    "loadsPerAxis": {
                                        "x": 1,
                                        "y": 2,
                                        "z": 1
                                    },
                                    "position": {
                                        "x": 0,
                                        "y": 0,
                                        "z": 0
                                    },
                                    "cubeId": 0
                                },
                                {
                                    "height": 100,
                                    "length": 120,
                                    "width": 80,
                                    "diameter": 0,
                                    "loadsPerAxis": {
                                        "x": 1,
                                        "y": 2,
                                        "z": 1
                                    },
                                    "position": {
                                        "x": 120,
                                        "y": 0,
                                        "z": 0
                                    },
                                    "cubeId": 0
                                },
                                {
                                    "height": 100,
                                    "length": 80,
                                    "width": 120,
                                    "diameter": 0,
                                    "loadsPerAxis": {
                                        "x": 1,
                                        "y": 2,
                                        "z": 1
                                    },
                                    "position": {
                                        "x": 0,
                                        "y": 0,
                                        "z": 80
                                    },
                                    "cubeId": 0
                                }
                            ]
                        }
                    ],
                    "loadingSide": "back",
                    "summary": {
                        "freeLdm": 640,
                        "occupiedLdm": 160,
                        "freeSurface": 13120000,
                        "occupiedSurface": 2880000,
                        "freeVolume": 262400000000,
                        "occupiedVolume": 57600000000,
                        "percentLdmUsd": 20,
                        "percentVolumeUsd": 18,
                        "totalLoadsWeight": 600
                    },
                    "axis": []
                }
            ],
            "type": "vehicle"
        }
    ],
    "notFittedLoads": [],
    "options": {
        "allowOverweight": false,
        "unit": "cm",
        "keepLoadsTogether": false,
        "newAlgorithm": true,
        "arrangeOptimally": false,
        "loadingOrder": "default",
        "keepGroupsInGivenSpaces": false,
        "isMagnetOn": false,
        "multiStops": false,
        "includeSavedLoadingSpaces": false,
        "additionOrder": true,
        "userOrder": false,
        "volumeOrder": false,
        "weightOrder": false
    },
    "_links": [
        {
            "rel": "preview",
            "href": "https://app.goodloading.com/session?id=cdaa9650-1fed-46a0-98df-b68654818c08&pref=opt-names-opened"
        }
    ]
}

Wizualizacja Response ver. 1

Wprowadzenie zmian do projektu

1. Pobranie identyfikatora projektu z Response

"href": "https://app.goodloading.com/session?id=cdaa9650-1fed-46a0-98df-b68654818c08&pref=opt-names-opened"

2. Otwarcie projektu w aplikacji webowej.

3. Wprowadzenie zmian w aplikacji

Dodanie 2 nowych ładunków.

4. Zapisanie nowej wersji projektu ze zmianami

Pobranie najnowszej wersji projektu

1. Pobranie identyfikatora projektu zmienionego w aplikacji webowej

2. Odwołanie do serwisu Goodloading https://api.goodloading.com/api/external/calculation//result?id=

3. Wstawienie do odwołania, pobranego identyfikatora zmienionego projektu 3263583f-c8f3-415a-8de8-d03df45d35cc&pref=opt-names-opened

Response_ver.2

W pobranym Response, zostały uwzględnione 2 dodane w aplikacji ładunki

{
    "loadingSpaces": [
        {
            "id": 1,
            "name": "truck 1",
            "type": "vehicle",
            "parts": [
                {
                    "length": 1000,
                    "width": 200,
                    "height": 200,
                    "limit": 24000,
                    "axis": [],
                    "loadingSide": "back",
                    "summary": {
                        "freeLdm": 780,
                        "occupiedLdm": 220,
                        "freeVolume": 33280000,
                        "occupiedVolume": 6720000,
                        "freeSurface": 161600,
                        "occupiedSurface": 38400,
                        "percentLdmUsd": 22,
                        "percentVolumeUsd": 16.8,
                        "totalLoadsWeight": 100
                    },
                    "COG": {
                        "x": 100,
                        "y": 100,
                        "z": 66.66
                    },
                    "loads": [
                        {
                            "placement": [
                                {
                                    "width": 80,
                                    "height": 100,
                                    "length": 60,
                                    "diameter": 0,
                                    "position": {
                                        "x": 120,
                                        "y": 0,
                                        "z": 120
                                    },
                                    "loadsPerAxis": {
                                        "x": 1,
                                        "y": 1,
                                        "z": 1
                                    }
                                },
                                {
                                    "width": 80,
                                    "height": 100,
                                    "length": 60,
                                    "diameter": 0,
                                    "position": {
                                        "x": 0,
                                        "y": 0,
                                        "z": 160
                                    },
                                    "loadsPerAxis": {
                                        "x": 1,
                                        "y": 1,
                                        "z": 1
                                    }
                                }
                            ],
                            "id": 2,
                            "name": "1/2 palety Euro",
                            "quantity": 2,
                            "width": 60,
                            "height": 100,
                            "length": 80,
                            "diameter": null,
                            "loadType": 0,
                            "weight": 0,
                            "allowToRotate": null,
                            "stacking": false,
                            "priority": null
                        },
                        {
                            "placement": [
                                {
                                    "width": 80,
                                    "height": 100,
                                    "length": 120,
                                    "diameter": 0,
                                    "position": {
                                        "x": 120,
                                        "y": 0,
                                        "z": 0
                                    },
                                    "loadsPerAxis": {
                                        "x": 1,
                                        "y": 2,
                                        "z": 1
                                    }
                                },
                                {
                                    "position": {
                                        "x": 0,
                                        "y": 0,
                                        "z": 0
                                    },
                                    "loadsPerAxis": {
                                        "x": 1,
                                        "y": 2,
                                        "z": 1
                                    }
                                },
                                {
                                    "position": {
                                        "x": 0,
                                        "y": 0,
                                        "z": 80
                                    },
                                    "loadsPerAxis": {
                                        "x": 1,
                                        "y": 2,
                                        "z": 1
                                    }
                                }
                            ],
                            "id": 1,
                            "name": "load 1",
                            "quantity": 6,
                            "width": 120,
                            "height": 100,
                            "length": 80,
                            "diameter": 0,
                            "loadType": 0,
                            "weight": 100,
                            "allowToRotate": null,
                            "stacking": true,
                            "priority": null
                        }
                    ]
                }
            ]
        }
    ],
    "notFittedLoads": [],
    "options": {
        "allowOverweight": false,
        "unit": "cm",
        "keepLoadsTogether": false,
        "loadingOrder": "default",
        "keepGroupsInGivenSpaces": false,
        "isMagnetOn": false,
        "newAlgorithm": false,
        "arrangeOptimally": false,
        "multiStops": false
    },
    "name": "Projekt z dnia: 2026-03-12 - Podmiana_OK",
    "note": null,
    "_links": [
        {
            "rel": "preview",
            "href": "https://app.goodloading.com/session?id=3263583f-c8f3-415a-8de8-d03df45d35cc&pref=opt-names-opened"
        }
    ]
}