Comunicação via API
Introdução
A comunicação via API pode ser realizada via linhas de comando utilizando CURL ou aplicação destinada a requisição API, como POSTMAN (o mais conhecido) e INSOMNIA.
Acesso Insomnia
Acesso Curl
Request via GET TI/AWS
Via GET TI será o endereço resolvido da instância da revenda, como por exemplo o da Intelidata: “https://getcard.intelidata.inf.br“.
Especialmente na Amazon, cada instância tem um IP/URL próprio. Então, cada vez que é instanciado uma nova versão, um novo IP/URL será gerado.
Para garantir sempre o sucesso da conexão, é possível fazer uma chamada para o serviço de roteamento do UniplusWeb, a fim de obter a URL atualizada de uma conta.
Logado na conta do cliente que será integrado acesse: Ferramentas → Configuração API, e teremos os seguintes dados:
No Insominia, crie um Projeto e depois uma Request Collection. Uma função legal do Insomnia é a possibilidade de criar diferentes projetos com diferentes requests, como diferentes áreas de trabalho.
Primeiro vamos criar uma Request tipo Get, ou seja, consultar dados, clicando no + e em HTTP Request: Obs: Para requisições via internet, sempre temos de usar HTTPS://.
Em seguida, clique em Auth → OAth 2.0:
Antes de iniciar uma Request, é necessário solicitar a criação do Token ao servidor, assim poderá ser iniciado as consultas via API, este token possui validade de 60 minutos, e sua geração pode ser feita quantas vezes for necessária.
- 1- Configure Grant Type como Client Credentials;
- 2- Informe endereço da instância do cliente com HTTPS:// seguido de: /oauth/token como na imagem acima. Exemplo: https://getcard.intelidata.inf.br/oauth/token;
- 3- Em Client ID informe a conta do cliente, que será o mesmo que o Tenant do cliente;
- 4- Copie e cole neste campo a chave de acesso do cliente;
- 5- Depois clique em Fetch Tokens.
Após os passos acima, o resultado será um token gerado como abaixo
No endereço o tipo da Request será Get, porém, existem outros tipos, conforme documentação: Métodos de requisição HTTP.
O endereço usado será o mesmo da instância do cliente com o HTTPS, com acréscimo de /public-api/V1/davs. Para isso, configuraremos conforme a imagem abaixo:
Para fazer uma Request de uma dav específica, basta adicionar /numeroDav.
Exemplo: /public-api/V1/davs/2
Para saber a lista de Objetos suportados, consulte o artigo: Api Rest – Lista de objetos.
Basicamente, os atributos dos objetos são os mesmos objetos do R2D2, então o layout será similar, observe também que alguns objetos estão como V1 e outros como V2, isso porque na V2 provavelmente foi adicionado algum atributo que não existia na V1, e provavelmente V1 foi descontinuada.
{
"identificacao": "DV",
"tabela": "dav",
"descricaoLayout": "DAV (Orçamento, Pedido de venda, Pedido de faturamento)",
"codigo": 2,
"filial": "1",
"tipoDocumento": 4,
"valor": 11.50,
"itens": [
{
"produto": "1077",
"quantidade": 1.000000,
"precoUnitario": 11.500000,
"desconto": 0.00,
"precoTotal": 11.50,
"numeroSerie": "",
"codigoDAV": 2,
"nrItem": 1,
"codigoUnidadeMedida": "UN",
}
]
}
O Json é formado por {} (Chaves) e [] (Colchetes), sempre que tivermos [] (Colchetes) significa que dentro teremos uma lista de algo, neste exemplo, de itens.
Para realizar um cadastro ou Post, como é feito na API, precisamos criar um método Post como na imagem abaixo e adicionar um corpo (Body).
No corpo vamos informar o Json e no endereço informar o tipo Post e o caminho do Andpoint:
Para entender mais sobre o formato Json, sugerimos que acesse o conteúdo a seguir: Afinal, o que é JSON e para que ele serve? Descubra agora!.
API Desktop
Para conectar API com desktop, será necessário utilizar o Yoda e não possuir UniplusWeb rodando na mesma porta da máquina local, isso porque, por padrão, tanto o Yoda quanto UniplusWeb usam a porta 8443. API desktop NÃO utiliza o conceito tenant, então a conta e a chave de acesso é fixa igualmente descrito no artigo API Rest.
Não há como gerar o token pela aplicação como na GET TI, então usaremos o Curl para gerar o token e configurar ele manualmente no Insominia.
Instale o Curl e abra o terminal a partir do endereço da pasta.
Obs: Para facilitar esse processo, digite CMD no endereço de qualquer pasta e tecle Enter:
Em seguida, execute o comando.
Obs: O comando será exatamente o mesmo abaixo, exceto pelo IP, caso não seja localhost, deve-se informar o IP de onde está rodando o serviço.
Comando:
curl -k -X POST -H "Authorization: Basic dW5pcGx1czpsNGd0cjFjazJyc3ByM25nY2wzZW50" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=client_credentials" "https://localhost:8443/oauth/token"
A chave é o que está na frente de “access_token” dentro da próxima aspas:
Nesse caso, o token é:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsieW9kYSJdLCJzY29wZSI6WyJwdWJsaWMtYXBpIl0sImV4cCI6MTY2MzEwNzU0MywianRpIjoiZWUwNjY4OTEtMmE4Ni00MjFlLWJjYmItNWY2NjU3NmFhY2I4IiwiY2xpZW50X2lkIjoidW5pcGx1cyJ9.HrD9Op3k0_X5DNy819C7vOgSp0j9fEcGQa-zNTKdp4Q"
No Insominia, deverá ser informado o endpoint de acordo com o desejado e o Token:
O restante (Get, Post e Put Delete) segue o mesmo padrão da API REST.
Conteúdo Relacionado
Os artigos listados abaixo estão relacionados ao que você acabou de ler:
• Índice de Endpoints (WEB)
• API Rest (WEB)
• API Alto Nível (WEB)
• API para acesso externo (WEB)
• API Pública do Gourmet
• Antes de Falar com o Suporte Técnico
• Obtendo suporte técnico e ajuda