Que nuestra API
de optimización sea asíncrona permite que la creación de objetos optimizaciones sea independiente del inicio del procesamiento de la misma y de la obtención del resultado. Esto quiere decir que puedes elegir cuando comenzar a procesar una optimización previamente creada, y que puedes obtener el estado de tu optimización cuando quieras, todo esto utilizando una serie de endpoints
que describiremos a continuación.
Recuerda que una vez creado objeto optimización el endpoint
retornará un número de referencia “reference” con el cual puedes iniciar el proceso de optimización haciendo un POST a la siguiente endpoint
:
https://app.optiroute.cl/api/v1/optimizations/{reference}/long_optimize/
Retorno del inicio de la optimización
Cuando inicies el proceso de optimización el endpoint
devolverá inmediatamente un código HTTP 202, dos códigos route_plan_id
y reference
, igual como para el endpoint
de creación.
Un ejemplo de retorno correcto corresponde a:
{ "route_plan_id": 983749, "reference": "xxf3949382c002", }
Estado de la optimización
Luego de que inicies la optimización de tu objeto recién creado puedes obtener el estado de la misma ingresando su código de referencia en el siguiente endpoint
.
Luego de resolver un objeto de optimización podemos revisar la solución haciendo un GET
a la siguiente url:
https://app.optiroute.cl/api/optimizations/{reference}/
Cuando la optimización haya sido calculada este endpoint
retornará un objeto compuesto por una lista de rutas que corresponde a tu optimización.
Cada una de estas rutas está a su vez compuesto por el nombre del vehículo
asignado a la ruta, su distancia
, duración
y una lista de destinos
abarcados por la ruta.
A su vez, cada uno de estos destinos posee información como su nombre
, el orden
en la ruta, la demanda
asociada a ese destino, la fecha
estimada de llegada, la duración
del viaje, y la duración de la entrega
del servicio.
Un ejemplo del retorno de una optimización corresponde al siguiente:
"solution": { "routes": [ { "vehicle": 0, "distance": 10838, "duration": 4257, "waypoints": [ { "order": 0, "arrival": "2019-12-07T09:00:00-03:00" }, { "name": "Rand oriente", "order": 1, "demand": 1, "arrival": "2019-12-07T09:06:17-03:00", "customer_order": 1, "travel_duration": 377, "service_duration": 600 }, { "name": "Rand norte", "order": 2, "demand": 1, "arrival": "2019-12-07T09:18:39-03:00", "customer_order": 2, "travel_duration": 142, "service_duration": 600 }, { "name": "Optiroute HQ", "order": 3, "demand": 1, "arrival": "2019-12-07T09:35:06-03:00", "customer_order": 3, "travel_duration": 387, "service_duration": 600 }, { "name": "Rand latlong", "order": 4, "demand": 1, "arrival": "2019-12-07T09:45:50-03:00", "customer_order": 4, "travel_duration": 44, "service_duration": 1200 }, { "order": 5, "arrival": "2019-12-07T10:10:57-03:00", "travel_duration": 307 } ] } ], "total_distance": 10838, "total_duration": 4257 }