Info
Explanation
Contains the explanation, once solved.
GET
/
v2
/
vrp
/
jobs
/
{id}
/
explanation
Explanation
curl --request GET \
--url https://api.solvice.io/v2/vrp/jobs/{id}/explanation \
--header 'Authorization: <api-key>'import requests
url = "https://api.solvice.io/v2/vrp/jobs/{id}/explanation"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.solvice.io/v2/vrp/jobs/{id}/explanation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.solvice.io/v2/vrp/jobs/{id}/explanation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.solvice.io/v2/vrp/jobs/{id}/explanation"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.solvice.io/v2/vrp/jobs/{id}/explanation")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.solvice.io/v2/vrp/jobs/{id}/explanation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"score": {
"hardScore": 123,
"mediumScore": 123,
"softScore": 123,
"feasible": true
},
"conflicts": [
{
"constraint": "<string>",
"score": "<string>",
"job": "<string>",
"resource": "<string>",
"tag": "<string>",
"relation": "<string>"
}
],
"unresolved": [
{
"score": "<string>"
}
],
"alternatives": {}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
Api Key based authentication (apikey)
Path Parameters
Response
Status
Explains the conflicts of a certain routing solution and the unresolved constraints.
Score of the solution.
Show child attributes
Show child attributes
Conflicts in the solution
- object[]
- object
Show child attributes
Show child attributes
Example:
{
"constraint": "TIME_WINDOW_CONFLICT",
"score": "-1000",
"job": "Job-1",
"resource": "vehicle-1"
}
Unresolved constraints in the solution
- object[]
- object
Show child attributes
Show child attributes
Example:
{
"constraint": "TRAVEL_TIME",
"score": "-1500"
}
When options.explanation.enabled is set to true, this field will contain the alternatives for the solution.The key is the job name and the value is the list of assignments. Each assignment contains the resource, the date, and the score. In this way, you can check the impact of the alternative on the score.
Show child attributes
Show child attributes
Example:
{
"Job-1": [
{
"job": "Job-1",
"resource": "vehicle-2",
"suggestedArrival": "2023-01-13T09:30:00Z",
"latestArrival": "2023-01-13T10:00:00Z",
"executedAfter": "Job-0",
"score": {
"hard": 0,
"soft": -1500,
"feasible": true
}
}
]
}
Was this page helpful?
⌘I
Explanation
curl --request GET \
--url https://api.solvice.io/v2/vrp/jobs/{id}/explanation \
--header 'Authorization: <api-key>'import requests
url = "https://api.solvice.io/v2/vrp/jobs/{id}/explanation"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.solvice.io/v2/vrp/jobs/{id}/explanation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.solvice.io/v2/vrp/jobs/{id}/explanation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.solvice.io/v2/vrp/jobs/{id}/explanation"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.solvice.io/v2/vrp/jobs/{id}/explanation")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.solvice.io/v2/vrp/jobs/{id}/explanation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"score": {
"hardScore": 123,
"mediumScore": 123,
"softScore": 123,
"feasible": true
},
"conflicts": [
{
"constraint": "<string>",
"score": "<string>",
"job": "<string>",
"resource": "<string>",
"tag": "<string>",
"relation": "<string>"
}
],
"unresolved": [
{
"score": "<string>"
}
],
"alternatives": {}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}