Esta ação é projetada para recuperar dados JSON sobre um REST API. Ela suporta os tipos de solicitação de dados 'POST ' e 'GET'.
Identificador: pedido_de_resto
Atributos
descanso_url: URL DA API REST
Possíveis valores: URL de descanso
- Requerido: sim
- Exemplo: "https://myfcc.com/sampledata/enginedata"
tipo request_type: Tipo de solicitação REST
Valores possíveis: "PÓS", "GET".
- Requerido: sim
- Exemplo: "GET".
value_path: Caminho para o valor dos dados JSON
Exemplo:
"$.rpm" //check Jayway JsonPath for more examples
descanso_params: Parâmetros que devem ser passados ao serviço REST
Possíveis valores: MAPA
Exemplo:
\<list name="rest_params"
listType="NAMED">
\<param name="serial"
type="string">1337\</param>
\</list>
repeat_every_ms: Intervalo de tempo em milissegundos após o qual, a ação solicita novos valores.
Possíveis valores: Número inteiro
- Requerido: sim
- Exemplo: 5000 (para cada 5 segundos)
payload_path: Um caminho opcional onde o valor recebido pode ser armazenado. Se nenhum caminho for dado, será utilizado o "valor_do_sensor".
Possíveis valores: Cordão
- Obrigatório: não
- Exemplo: "sensor_value" (valor_do_sensor)
Exemplos
Vamos considerar um JsonPath dada a seguinte estrutura JSON:
[{
"color"="blue",
"id"=87427,
"name"="Blueforce87427",
"position"={
"datetime"="2017-07-20T13: 58: 47.947513+02: 00",
"positionX"=2722,
"positionY"=2,
"positionZ"=3980
}
}{
"color"="red",
"id"=11111,
"name"="Opfor11111",
"position"={
"datetime"="2017-07-20T13: 58: 47.947513+02: 00",
"positionX"=3222,
"positionY"=232,
"positionZ"=4000
}
}]
Você pode usar as seguintes cordas JsonPath para recuperar os dados do ponto final:
1. JsonPath:
$[0]['name']
1. Corda devolvida:
Blueforce87427
2. JsonPath:
$[0]['position']
2. Cadeia devolvida:
[{
"datetime"="2022-07-27T13:58:47.925260+02:00,
"positionX"=2722,
"positionY"= 2,
"positionZ"= 3980
}]
3. JsonPath:
$[*]
3. Corda devolvida: Conjunto completo com ambos os objetos
Mínimo
<rest_request id="my_rest_test0">
<param name="rest_url" type="string">https://alex.dev.ubimax.com/sampledata/enginedata</param>
<param name="request_type" type="string">POST</param>
<param name="value_path" type="string">$.rpm</param>
<list name="rest_params" listType="NAMED">
<param name="serial" type="string">1337</param>
</list>
</rest_request>
Todas as opções
<rest_request id="my_rest_test0">
<param name="rest_url" type="string">https://alex.dev.ubimax.com/sampledata/enginedata</param>
<param name="request_type" type="string">POST</param>
<param name="value_path" type="string">$.rpm</param>
<param name="repeat_every_ms" type="string">5000</param>
<param name="payload_path" type="string">myPayload</param>
<list name="rest_params" listType="NAMED">
<param name="serial" type="string">1337</param>
</list>
</rest_request>