Поддержка JSON-представления данных появилась в RAD Studio очень давно и с тех пор сильно видоизменялась и расширялась. Начиная с обеспечения разработок для DataSnap в DBX, и включая поддержку нереляционных данных и запросов MongoDB в FireDAC – JSON применяется как самая популярная опция представления и передачи данных, будь то нативные приложения на самых разных устройствах, или многоуровневые WEB-системы, поддерживающие много протоколов обмена и реализованные на любых популярных средствах разработки и инструментах.
За прошедшие годы RAD Studio получила признание, как средство исключительно быстрого создания корпоративных и индивидуальных back-end платформ, в том числе SOAP и сервис-ориентированных. Архитектура RAD Studio позволяет использовать для этого самые разные варианты решений работы с JSON, основанные на различных наборах компонент, имеющихся в первоначальном наборе или от независимых внешних разработчиков.
В последнее время компания Embarcadero уделяет большое внимание развитию и расширению поддержки распространенных средств создания клиентских приложений для многоуровневых систем, в том числе популярных инструментов, библиотек и фреймворков для создания WEB-клиентов приложений, реализованных на JavaScript.
Возможности самого свежего релиза Tokyo 10.2 Release 2 были расширены для упрощения взаимодействия и обмена данными с JavaScript-клиентами, например, созданными на AngularJS, ReactJS или Sencha.
Лучше всего показать эту новую возможность на примерах.
Откроем RAD Studio. Для примера будем создавать проекты на Delphi. Создадим новый проект New – Other – EMS Package. Данные будем брать из таблицы Employee одноименной БД из примеров для InterBase. Положим на форму TFDConnection и настроим его для соединения с этой БД. Также поместим на модуль TFDQuery, свяжем его с TFDConnection и зададим запрос SQL = ‘Select * from EMPLOYEE’. Тогда, по-старому, обработчик вызова GET мог бы выглядеть так:
Однако, в этом случае в тело ответа передаются не только найденные данные из запроса, но все описание датасета целиком, включая метаданные, в виде JSON. Для клиентов, написанных на JavaScript это не всегда приемлемо, поэтому часто приходится заменять этот короткий кусок кода значительно более сложным и длинным, чтобы сформировать jsonArray вручную.
Элегантное и быстрое решение стало возможно в Tokyo 10.2 Release 2 — в этом релизе были расширены возможности поддержки JSON. Если добавить на модуль еще три компонента (см картинку),
то код упрощается до двух строк:
Я выбрал для примера RAD Server и FireDAC, которые входят в стандартную поставку RAD Studio, но описываемые приемы настолько универсальны, что могут быть использованы в любых проектах, для любого WEB-сервиса, написанного на Delphi или C++Builder, даже в простейшем проекте WebBroker, с любым dataset, отличным от FireDAC – это открытое и очень гибкое решение.
Подробнее можно ознакомиться на канале Embarcadero Russia YouTube https://www.youtube.com/watch?v=PMjG76dKphY