Como puede haber visto en línea, Idera (empresa matriz de Embarcadero) adquirió recientemente apilayer, una empresa que ofrece una serie de microservicios de API REST, que van desde la geolocalización de direcciones IP hasta la verificación de números de teléfono y correo electrónico, desde información financiera hasta seguimiento meteorológico y de vuelos. Puede encontrar una lista de los productos de la empresa en https://apilayer.com/ . Cada producto tiene su propio sitio web, donde generalmente puede iniciar sesión para obtener una cuenta con un número limitado de llamadas REST gratuitas.
En esta publicación de blog, no quiero discutir los servicios disponibles, pero me enfoco en cómo llamarlos desde RAD Studio. Usaré solo dos servicios, la API de países REST abierta y gratuita y uno de sus servicios premium de geolocalización.
Uso de la API de países REST
Mi punto de partida para explorar los servicios de apilayer es un servicio simple y totalmente gratuito, disponible junto con la documentación completa en https://github.com/apilayer/restcountries . Para hacer un experimento inicial, usé el depurador REST para consultar el servicio, usando el nombre del punto final y, opcionalmente, pasando un parámetro, como puede ver a continuación (con el valor del parámetro “unido”):
Una vez que los datos se vean correctos en el depurador REST, puede usar el botón Copiar componentes para hacer una instantánea de la configuración del componente de la biblioteca cliente REST requerido para construir una aplicación. Ahora, cree una aplicación Delphi o C ++ en RAD Studio, ya sea VCL o FMX, y pegue los componentes en un módulo de datos, o un formulario si es vago. En este caso he usado Delphi y VCL… y era vago.
Dejé caer un panel con una edición y un botón y DBGrid (más un componente DataSource), los conecté y ejecuté RESTRequest en tiempo de diseño para obtener una vista previa de los datos:
El código para filtrar es muy simple:
procedimiento TForm43.Button1Click (Remitente: TObject);
begin
if Edit1.Text = ”then
RESTRequest1.Resource: = ‘name’
else
RESTRequest1.Resource: = ‘name /’ + Edit1.Text;
RESTRequest1.Execute;
fin;
El único otro cambio que tuve que hacer fue cambiar la propiedad TypesMode del componente RESTResponseDataSetAdapter1 a JSONOnly, ya que algunos de los análisis de datos intentaban por error convertir un texto relacionado con la zona horaria en una fecha, lo que resultó en una excepción.
Geocodificación inversa con la API Position Stack
Luego intenté usar el nivel gratuito de una API paga, https://positionstack.com/ . Este servicio ofrece geocodificación directa e inversa, servicios de mapeo y más. Aquí, por ejemplo, he realizado una codificación geográfica “directa” simple, proporcionando una dirección y leyendo la latitud, la longitud y otra información local en el depurador REST. Para obtener el resultado tabular tuve que configurar la raíz JSON usando el elemento de datos :
En este caso, debe registrarse para obtener una clave de desarrollador e ingresarla como un parámetro adicional para la solicitud. (Es posible que desee considerar codificar esa clave en lugar de tenerla como una cadena simple en la aplicación final).
Ahora, de manera similar a lo que hice anteriormente, podemos copiar los componentes en una aplicación RAD Studio y tener una aplicación FMX de codificación geográfica lista para usar, esta vez basada en Live Bindings. Además, esta aplicación puede mostrar datos en tiempo de diseño, en este caso la latitud y longitud de mi ciudad (más otra ciudad con el mismo nombre en EE. UU.):
Conclusión
Aprovechar las API de microservicio para el desarrollo de aplicaciones, tanto de escritorio como móviles, realmente puede acelerar la creación y la implementación de funciones innovadoras, y tenerlas en una infraestructura escalable al mismo tiempo. Espero poder aprovechar más de los servicios de apilayer y le animo a que eche un vistazo a lo que pueden ofrecer para sus proyectos actuales o futuros.