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.
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”):
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:
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 :
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):
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.