Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Notícia

Usando APIs REST Apilayer de Delphi

apilayer00

Como você deve ter visto online, a Idera (controladora da Embarcadero) adquiriu  recentemente a  apilayer, uma empresa que oferece uma série de microsserviços de API REST, que vão desde geolocalização de endereços IP a e-mails e verificações de números de telefone, de informações financeiras a clima e rastreamento de voos. Você pode encontrar uma lista dos produtos da empresa em  https://apilayer.com/ . Cada produto tem seu próprio site, onde geralmente você pode entrar para uma conta com um número limitado de chamadas REST gratuitas.

apilayer00-1445673

Nesta postagem do blog, não quero discutir os serviços disponíveis, mas me concentrar em como chamá-los do RAD Studio. Usarei apenas dois serviços, a API de países REST gratuita e aberta e um de seus serviços premium de geolocalização.

Usando a API de países REST

Meu ponto de partida para explorar os serviços de uma camada é um serviço simples e totalmente gratuito, disponível junto com a documentação completa em  https://github.com/apilayer/restcountries . Para fazer um experimento inicial, usei o REST Debugger para consultar o serviço, usando o nome endpoint e opcionalmente passando um parâmetro, como você pode ver abaixo (com o valor do parâmetro “united”):

apilayer01

Assim que os dados parecerem corretos no Depurador REST, você pode simplesmente usar o botão Copiar Componentes para fazer um instantâneo da configuração do componente da Biblioteca do Cliente REST necessário para construir um aplicativo. Agora, crie um aplicativo Delphi ou C ++ no RAD Studio, seja VCL ou FMX, e cole os componentes em um módulo de dados – ou um formulário se você for preguiçoso. Neste caso, usei Delphi e VCL … e fui preguiçoso.

Eu soltei um painel com uma edição e um botão e DBGrid (mais um componente DataSource), conectei-os e executei o RESTRequest em tempo de design para obter uma visualização dos dados:

apilayer02

O código de filtragem é muito simples:

procedimento TForm43.Button1Click (Sender: TObject);
começar
se Edit1.Text = ”then
RESTRequest1.Resource: = ‘name’
else
RESTRequest1.Resource: = ‘name /’ + Edit1.Text;
RESTRequest1.Execute;
fim;

A única outra alteração que tive de fazer foi alterar a propriedade TypesMode do componente RESTResponseDataSetAdapter1 para JSONOnly, já que parte da análise de dados estava tentando por engano converter algum texto relacionado ao fuso horário em uma data, resultando em uma exceção.

GeoCoding reverso com a API Position Stack

Em seguida, fiz uma tentativa de usar o nível gratuito de uma API paga,  https://positionstack.com/ . Este serviço oferece geocodificação direta e inversa, serviços de mapeamento e muito mais. Aqui, por exemplo, fiz uma geocodificação “direta” simples, fornecendo um endereço e lendo a latitude, longitude e outras informações locais no Depurador REST. Para obter o resultado tabular, tive que configurar a raiz JSON usando o  elemento de dados  :

apilayer03

Nesse caso, você precisa se inscrever para uma chave de desenvolvedor e inseri-la como um parâmetro adicional para a solicitação. (Você pode querer considerar a codificação dessa chave em vez de tê-la como uma string simples no aplicativo final.)

Agora, de maneira semelhante ao que fiz acima, podemos copiar os componentes em um aplicativo RAD Studio e ter um aplicativo FMX de geocodificação pronto para uso, desta vez baseado em Live Bindings. Além disso, este aplicativo pode exibir dados em tempo de design, neste caso a latitude e longitude da minha cidade (mais outra cidade com o mesmo nome nos EUA):

apilayer04

Conclusão

Aproveitar APIs de microsserviço para desenvolvimento de aplicativos, tanto para desktop quanto para dispositivos móveis, pode realmente acelerar a construção e implantação de recursos inovadores e colocá-los em uma infraestrutura escalonável ao mesmo tempo. Estou ansioso para aproveitar mais os serviços de uma  camada  e incentivá-lo a dar uma olhada no que eles podem oferecer para seus projetos atuais ou futuros.


What's New for RAD Studio 11

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

IN THE ARTICLES