Chamada de Forma assíncrona
A segunda — e mais utilizada — opção para consumir um de nossos produtos é atráves de uma chamada assíncrona. Isso significa que ao realizar a requisição, logo em seguida receberá uma resposta parcial com um ID (identificador) para recuperar a resposta completa quando o processamento dos dados estiver finalizado.
Nesse paradigma, a resposta parcial é recebida em menos de 1 segundo.
No entanto, é necessária a utilização da Chamada de Status ou Dados para verificar a conclusão do processamento dos dados.
Recomendamos a utilização dessa chamada em todos casos que seja possível fazer o controle de conclusão em um fluxo alternativo.
Montando a requisição
Método da requisição
GET
Endereço da requisição
Homologação:
https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234
Produção:
https://api.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234
Cabeçalho da requisição
{
"Authorization": "Bearer token",
"Content-Type": "application/json"
}
No parâmetro Authorization você vai informar o valor do token recuperado anteriormente.
Por exemplo:
{
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ",
"Content-Type": "application/json"
}
Respostas da requisição
200 - Sucesso
{
"id": "657caf08255ca770829ae3d0",
"plate": "ABC1234",
"partner": true,
"quick": false,
"integration": true,
"type": "ESPECIAL",
"tags": [],
"photos": [],
"status": "PROCESSING",
"notifiedAt": "2023-12-15T19:54:48.348Z",
"executedAt": "2023-12-15T19:54:48.349Z",
"createdAt": "2023-12-15T19:54:48.350Z",
"updatedAt": "2023-12-15T19:54:48.350Z",
"product": {
"name": "Especial",
"code": "ESPECIAL",
"value": 47.9
}
}
As propriedades id e status são importantes aqui. O status informa o estágio da execução e o id é necessário na chamada de Status ou Dados para conseguir verificar a conclusão do processamento dos dados.
401 - Não autorizado
{
"message": "Unauthorized!"
}
Exemplos da requisição
HTTP
GET /v1/integration/inquiries/ESPECIAL/ABC1234 HTTP/1.1
Host: apipreview.aboutcar.com.br
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ
cURL
curl --location 'https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ'
JavaScript
const myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ");
const requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
NodeJs
const axios = require('axios');
const config = {
method: 'get',
maxBodyLength: Infinity,
url: 'https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234',
headers: {
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ'
}
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Java
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234")
.header("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ")
.asString();