O Cronapp permite consumir serviços REST por Bloco de programação ou Fonte de dados. Nesse tutorial veremos apenas como consumir via Bloco de programação, para entender como obter os recursos por Fonte de dados, veja as documentações: Fonte de dados e Fonte de dados tipo Web Service (REST / SOAP).
Antes de consumir um serviço REST no Cronapp, é necessário ter um serviço que disponibilize. Para saber como criar um dentro do Cronapp, acesse a página Disponibilizando Web Service Rest.
Neste exemplo foi utilizado uma API externa gratuita de testes (https://jsonplaceholder.typicode.com/todos/), ela retorna uma lista de objetos.
{ "userId": 1, "id": 2, "title": "quis ut nam facilis et officia qui", "completed": false } |
Para consumir web services REST, o Cronapp disponibiliza dois blocos de programação em sua API:
Neste exemplo usaremos o bloco servidor.
Os blocos de programação Clientes são assíncronos. Dessa forma, caso use blocos clientes, será necessário além do bloco de requisição REST, usar também o bloco Promessa, que fica aguardando a resposta do serviço para dar continuidade a execução da função. Para ver um exemplo de como utilizar os blocos de processas, acesse o tutorial. |
Para testar os dois exemplos abaixo, basta chamar a função criada no evento de clique de um botão, por exemplo. O resultado será visualizado na aba Console do Depurador do Cronapp.
Um URI identifica exclusivamente uma instância específica de um tipo de recurso. Caso o recurso permita, podemos informar parâmetros entre "/", porém é imprescindível que a ordem informada dos parâmetros seja a mesma ordem que a função espera receber.
Estrutura do URI: <domínio>/<função>/<parâmetro1>/<parâmetro2>/<parâmetroN>
Crie um bloco de programação tipo servidor e defina um nome tanto para o arquivo quanto para a função, como mostrado na figura 1.1.
Figura 1.1 - Criando bloco de programação vazio
Arraste os blocos e configure como na figura abaixo.
Figura 1.2 - Bloco Obter conteúdo da URL via URI
Abra o formulário home (localização Formulário/Web/Autenticado
Endereço: |
) e adicione o componente Botão. Na aba propriedades, clique na subaba Eventos e clique em "..." (seta maior da Figura 1.3) do evento Ao clicar para abrir sua janela (1 da Figura 1.3). Após, clique em "..." (seta menor da Figura 1.3) dessa janela para abrir a janela de seleção de bloco (2 da Figura 1.3) e selecione a função do bloco criado (3 da Figura 1.3). Por fim, salve tudo e execute o projeto.
Figura 1.3 - Vinculando bloco ao componente
Acesse a página home no navegador, clique no botão e volte a IDE. Ao abrir o console do depurador da IDE, o conteúdo da API estará impresso no console (Figura 1.4) devido ao bloco imprime da função.
Figura 1.4 - Console do depurador exibindo o objeto de retorno da requisição
A requisição via query string nos permite utilizar diversos parâmetros como filtro para obter um registro específico da API. Esses parâmetros não necessitam estar em uma ordem predefinida.
Estrutura do Query String: <domínio>/<função>?<chave1>=<valor1>&<chave2>=<valor2>&<chaveN>=<valorN>
Vamos criar outra função dentro do arquivo de bloco REST (criado na figura 1.1), para isso, arraste o bloco de função Para (com retorno) (categoria Funções) para criarmos uma função vazia, informe um nome ao bloco Para (com retorno), por exemplo "ObterConteudo". Em seguida arraste os blocos e configure como na figura abaixo:
Figura 2.1 - Bloco Obter conteúdo da URL via Query String
Após finalizada, a requisição montada na Figura 3 ficou: https://jsonplaceholder.typicode.com/todos?completed=false&id=1
Abra o formulário home (localização Formulário/Web/Autenticado
Endereço: |
) e adicione outro componente botão. Na aba propriedades, clique na subaba eventos e clique em "..." (seta maior da Figura 2.2) do evento ao clicar para abrir sua janela (1 da Figura 2.2). Após, clique em "..." (seta menor da Figura 2.2) dessa janela para abrir a janela de seleção de bloco (2 da Figura 2.2) e selecione a função do bloco criado (3 da Figura 2.2). Por fim, salve tudo e execute o projeto.
Figura 2.2 - Vinculando bloco ao componente
Acesse a página home no navegador, clique no botão e volte a IDE. Ao abrir o console do depurador da IDE, o conteúdo da API estará impresso no console (Figura 2.3) devido ao bloco imprime da função.
Figura 2.3 - Console do depurador exibindo um array de objeto de retorno da requisição