Зачем нужны и как работают блоки 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]

  • _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 у каждой таблицы.

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

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

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

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

Начать
AppMaster 101 Crash Course

Нужна помощь?

Решите любую проблему с помощью наших экспертов. Сэкономьте время и сосредоточьтесь на создании своих приложений.

headphones

Связаться с поддержкой

Расскажите нам о своей проблеме, и мы найдем для вас решение.

message

Чат сообщества

Общайтесь с другими пользователями, чтобы получить помощь по работе с платформой.

Присоединиться
GET запросы | AppMaster University