Quando houver a necessidade de integração entre duas plataformas e houver muitas requisições de dados, não faz sentido criar um método GET para cada estrutura requerida, a não ser que a mesma tenha alguma especificidade, sendo assim, para consultas genéricas, resolvi criar uma API dinânimca
Para execução desta API é necessário seguir alguns passos:
- REST - Configuração
- INSOMNIA - Utilizei para testes de requisições o Insomnia, porém, há outros clientes, como por exemplo, o POSTMAN e também a o próprio curl
Primeiro passo, é a compilação do arquivo wsService.prw presente neste repositório
Após isso, simplesmente é realizar o consumo desta API da seguinte forma;
curl:
curl --request GET \
--url http://localhost:8080/wsService/query \
--header 'content-type: application/json' \
--data '{
"query": "SELECT A1_COD, A1_LOJA, A1_NOME FROM SA1000 WHERE D_E_L_E_T_ = '\'''\'' AND A1_NOME LIKE '\''CIRO%'\''"
}'
Para campos do tipo MEMO é necessário a realização do CAST (Doc. Microsoft SQL) dentro do body JSON, exemplo:
{
"query": "SELECT CAST(CAST(CAMPO_MEMO AS VARBINARY(8000)) AS VARCHAR(8000)) FROM TABLE"
}
Distribuído sobre a licença MIT
Então é isso! =)