Как вы, возможно, видели в Интернете, Idera (материнская компания Embarcadero) недавно приобрела apilayer, компанию, предлагающую ряд микросервисов REST API, начиная от геолокации IP-адреса и заканчивая проверкой электронной почты и номера телефона, от финансовой информации до погоды и отслеживания рейсов. Вы можете найти список продуктов компании на https://apilayer.com/ . У каждого продукта есть собственный веб-сайт, на котором вы обычно можете войти в систему, используя ограниченное количество бесплатных вызовов REST.
В этом сообщении блога я не хочу обсуждать доступные службы, а сосредоточусь на том, как вызывать их из RAD Studio. Я буду использовать только две службы: бесплатный и открытый API стран REST и одну из их премиальных служб геолокации.
Использование API стран REST
Моя отправная точка для изучения сервисов apilayer — это простой и совершенно бесплатный сервис, доступный вместе с полной документацией на https://github.com/apilayer/restcountries . Чтобы провести первоначальный эксперимент, я использовал отладчик REST для запроса службы, используя конечную точку имени и, при необходимости, передав параметр, как вы можете видеть ниже (со значением параметра «объединено»):
После того, как данные в отладчике REST выглядят правильно, вы можете просто использовать кнопку «Копировать компоненты», чтобы сделать снимок конфигурации для компонента клиентской библиотеки REST, необходимого для создания приложения. Теперь создайте приложение Delphi или C ++ в RAD Studio, VCL или FMX, и вставьте компоненты в модуль данных — или форму, если вам лень. В этом случае я использовал Delphi и VCL… и мне было лень.
Я отбросил панель с редактированием, кнопкой и DBGrid (плюс компонент DataSource), подключил их и выполнил RESTRequest во время разработки, чтобы получить предварительный просмотр данных:
Код для фильтрации очень прост:
процедура TForm43.Button1Click (Отправитель: TObject);
начать,
если Edit1.Text = ”, то
RESTRequest1.Resource: = ‘name’
иначе
RESTRequest1.Resource: = ‘name /’ + Edit1.Text;
RESTRequest1.Execute;
конец;
Единственное другое изменение, которое мне пришлось сделать, — это изменить свойство TypesMode компонента RESTResponseDataSetAdapter1 на JSONOnly, так как часть анализа данных ошибочно пыталась преобразовать текст, связанный с часовым поясом, в дату, что привело к исключению.
Обратное геокодирование с помощью Position Stack API
Затем я попытался использовать бесплатный уровень платного API https://positionstack.com/ . Этот сервис предлагает прямое и обратное геокодирование, картографические сервисы и многое другое. Здесь, например, я выполнил простое «прямое» геокодирование, указав адрес и прочитав широту, долготу и другую локальную информацию в отладчике REST. Для получения табличного результата мне пришлось настроить корень JSON с помощью элемента данных :
В этом случае вам необходимо подписаться на ключ разработчика и ввести его в качестве дополнительного параметра запроса. (Возможно, вы захотите рассмотреть возможность кодирования этого ключа, а не использовать его в виде простой строки в конечном приложении.)
Теперь, аналогично тому, что я сделал выше, мы можем скопировать компоненты в приложение RAD Studio и получить готовое приложение FMX для геокодирования, на этот раз на основе Live Bindings. Также это приложение может отображать данные во время разработки, в данном случае широту и долготу моего города (плюс еще один город с таким же названием в США):
Заключение
Использование API-интерфейсов микросервисов для разработки приложений, как настольных, так и мобильных, действительно может ускорить создание и развертывание инновационных функций и одновременно разместить их в масштабируемой инфраструктуре. Я с нетерпением жду возможности использовать больше двухуровневых услуг и призываю вас взглянуть на то, что они могут предложить для ваших текущих или будущих проектов.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition