Зачем нужны и как работают блоки GET

Когда вы разрабатываете фронтенд, вам неизбежно понадобится запускать различные БП на бэкенде. Чтобы запустить БП необходимо обратиться к его эндпоинту. Для этого, для каждого эндпоинта AppMaster создает блок Server Request. Эти блоки имеют те же входные и выходные поля, что и связанный эндпоинт и служат способом его запуска.

Блоки GET, в соответствии с принципами REST API, должны получать какие-либо данные. Чаще всего с помощью блоков GET получают данные из модели в БД (все, или по определенным критериям).

Как и все блоки Server Request, каждый блок GET привязан к своему эндпоинту. Url эндпоинта отображается в названии блоков.

Помните, что AppMaster генерирует основные эндпоинты автоматически. Но вы также можете создавать свои БП и эндпоинты для них, и, соответственно, свои блоки Server Request.

Входные и выходные поля блока GET

Входные:

  • Endpoint ID – служит для определения, к какому эндпоинту должен обращаться блок. Это поле устанавливается автоматически;
  • _offset – смещение, позволяет указать, начиная с какой записи, блок будет получать информацию; формат integer;
  • _limit – количество записей, которое загружает блок. По умолчанию равен 25, максимум за один раз – 500; формат integer;
  • _sort_order – для этого поля подходят два значения asc – прямой порядок сортировки и desc – обратный порядок; формат string;
  • _sort_by – здесь можно определить, по какому полю модели данных будет сортироваться список; формат string;

_sort_order и _sort_by – работают только в связке;

  • Ids – список id записей. Позволяет получить записи по конкретным id; формат array integer;
  • _search – поиск заданного значения в модели данных; формат string;
  • _search_exact – включение/выключение поиска точного совпадения; формат boolean;
  • _search_in – поиск по определенным полям; формат array string;  

Далее идут поля модели данных. Они предназначены для поиска по конкретному полю. Форматы соответствуют форматам в модели данных.

Разберем подробнее поля, связанные с поиском.

  • _search – ищет совпадения по всей модели данных и будет находить их вне зависимости от поля, в котором находится значение. Например, зададим в поле _search значение John. Если в модели данных у одной записи значение поля name будет John, а у другой – значение поля email будет [email protected], то поиск найдет обе эти записи.
  • _search_exact – включение этого поля означает, что в результаты будут попадать записи, полностью совпадающие с запросом.
Запрос_search_exactРезультат
JohnFalseJohn, Johny, [email protected]
JohnTrueJohn
  • _search_in – здесь можно задать поля, в которых должен проводиться поиск. Например, если мы хотим проводить поиск только по именам и не учитывать случаи, когда присутствует имя в email, можно использовать _search_in и искать только по полю name.

Поля моделей данных для поиска

Эти поля предназначены для поиска по модели данных. Главная разница между ними и полями search в том. что они могут принимать разные значения, в отличие от search, который принимает только формат string.

Выходные:

  • _success – успешно ли прошло получение данных; формат boolean;
  • _httpcode – код ответа на запрос; формат integer;
  • _error – текст ошибки, если есть; формат string;
  • Data – полученные записи; формат array model;
  • Count – количество найденных записей. Не зависит от параметра _limit; формат integer.

Отдельного внимания заслуживает поле _with. Оно появляется в тех блоках, где запрос идет к связанным моделям данных. Поле позволяет получить данные не только из той модели данных, к которой идет запрос, но и из связанных с ней моделей данных. 

Рассмотрим поле _with на примере приложения, которое хранит список книг и их жанры.

Создадим две модели данных: book и category. В book добавим поле book_name, а в category добавим поле category_name.

 

Создадим связь между ними. Проведем ее от category к book и зададим тип связи has_many, т.к.одна категория может относиться к разным книгам. 

Теперь во вкладке веб-приложения настроим загрузку данных в таблицы book и category, а так же добавим записи в эти таблицы.

Сейчас связанные данные не отображаются в таблицах. Чтобы исправить это, нужно поле _with.

Настроим это поле в блоке Get у каждой таблицы.

Теперь откроем наше приложение, и убедимся, что запрос выполняется, а в таблице появляются нужные данные.

Was this article helpful?

AppMaster.io 101 Полный курс

10 модулей
2 недели

Не знаете с чего начать? Начните с нашего ускоренного курса для начинающих и изучите AppMaster от А до Я.

Начать обучение
Development it’s so easy with AppMaster!

Остались вопросы?

Наши эксперты с радостью ответят на все ваши вопросы о платформе AppMaster и помогут вам в создании приложений.

headphones

Служба поддержки

Поделитесь своей проблемой с нашими специалистами.

message

Комьюнити AppMaster

Обсудите вопросы с другими пользователями в нашем чате.

Присоединиться