Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Новости

Использование API REST Apilayer от Delphi

apilayer00

Как вы, возможно, видели в Интернете, Idera (материнская компания Embarcadero) недавно  приобрела  apilayer, компанию, предлагающую ряд микросервисов REST API, начиная от геолокации IP-адреса и заканчивая проверкой электронной почты и номера телефона, от финансовой информации до погоды и отслеживания рейсов. Вы можете найти список продуктов компании на  https://apilayer.com/ . У каждого продукта есть собственный веб-сайт, на котором вы обычно можете войти в систему, используя ограниченное количество бесплатных вызовов REST.

apilayer00-1445673

В этом сообщении блога я не хочу обсуждать доступные службы, а сосредоточусь на том, как вызывать их из RAD Studio. Я буду использовать только две службы: бесплатный и открытый API стран REST и одну из их премиальных служб геолокации.

Использование API стран REST

Моя отправная точка для изучения сервисов apilayer — это простой и совершенно бесплатный сервис, доступный вместе с полной документацией на  https://github.com/apilayer/restcountries . Чтобы провести первоначальный эксперимент, я использовал отладчик REST для запроса службы, используя конечную точку имени и, при необходимости, передав параметр, как вы можете видеть ниже (со значением параметра «объединено»):

apilayer01

После того, как данные в отладчике REST выглядят правильно, вы можете просто использовать кнопку «Копировать компоненты», чтобы сделать снимок конфигурации для компонента клиентской библиотеки REST, необходимого для создания приложения. Теперь создайте приложение Delphi или C ++ в RAD Studio, VCL или FMX, и вставьте компоненты в модуль данных — или форму, если вам лень. В этом случае я использовал Delphi и VCL… и мне было лень.

Я отбросил панель с редактированием, кнопкой и DBGrid (плюс компонент DataSource), подключил их и выполнил RESTRequest во время разработки, чтобы получить предварительный просмотр данных:

apilayer02

Код для фильтрации очень прост:

процедура 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 с помощью  элемента данных  :

apilayer03

В этом случае вам необходимо подписаться на ключ разработчика и ввести его в качестве дополнительного параметра запроса. (Возможно, вы захотите рассмотреть возможность кодирования этого ключа, а не использовать его в виде простой строки в конечном приложении.)

Теперь, аналогично тому, что я сделал выше, мы можем скопировать компоненты в приложение RAD Studio и получить готовое приложение FMX для геокодирования, на этот раз на основе Live Bindings. Также это приложение может отображать данные во время разработки, в данном случае широту и долготу моего города (плюс еще один город с таким же названием в США):

apilayer04

Заключение

Использование API-интерфейсов микросервисов для разработки приложений, как настольных, так и мобильных, действительно может ускорить создание и развертывание инновационных функций и одновременно разместить их в масштабируемой инфраструктуре. Я с нетерпением жду возможности использовать больше  двухуровневых услуг  и призываю вас взглянуть на то, что они могут предложить для ваших текущих или будущих проектов.


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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

IN THE ARTICLES