TGViewer
Flutter Friendly Flutter Friendly @flutterfriendly · 995 subscribers
Post #233 688
Всем привет! Это Роза, Flutter Dev Friflex 👋

Сегодня расскажу про пакет, с помощью которого можно легко настроить запросы к вашему бэкенду — dart_frog. Он упрощает создание роутингов благодаря автоматической генерации кода. В этом посте покажу пару команд и расскажу основные моменты при работе с пакетом.

🐸 Как начать
Чтобы начать работу с dart_frog, сначала необходимо установить зависимость. Далее можно работать с командами пакета

Для создания проекта используйте:

dart_frog build

В результате у вас создастся структура проекта, которая включает в себя DockerFile.

Основная логика обработки запросов в Dart Frog строится на маршрутах (routes). Каждый маршрут соответствует определенному пути и методу HTTP, и чтобы его добавить необходимо создать файл-обработчик в директории routes/.

Например, чтобы добавить POST /api/localization_key/export, создайте файл вручную:

lib/routes/api/localization_key/export.dart


Или используйте команду:

dart_frog new route "/api/localization_key/export"


Далее внутри созданного роута реализуйте функцию:

Future<Response> onRequest(RequestContext context) async {
// Логика обработки запроса
return Response.json(body: {'message': 'Экспорт данных'});
}


RequestContext позволяет получить доступ к входящему запросу, а также к зависимостям, представленным контексту запроса.

🐸 Middleware
В Dart Frog middleware реализуется как функция, которая оборачивает обработчик маршрута и возвращает новый обработчик с дополнительной логикой.

Middleware добавляется в проект в виде файла с названием _middleware.dart.

Создать middleware можно также с помощью команды:

dart_frog new middleware 'NAME_OF_FOLDER'


После добавления или изменения middleware необходимо перезапустить генерацию кода для применения изменений.

Пару важных моментов:
◽️Если файл _middleware.dart находится в папке маршрута без вложенности, middleware применяется ко всем маршрутам на этом уровне

◽️Чтобы middleware применялся только к определенным маршрутам, необходимо создать _middleware.dart внутри соответствующей папки маршрутов

◽️ Если middleware создан в произвольной, не связанной с маршрутом папке, он применен не будет

Структура middleware выглядит таким образом:

Handler middleware(Handler handler) {
return handler.use(requestLogger());
}


Кроме маршрутов и middleware, часто нужно работать с заголовками запросов. В Dart Frog это реализуется так:

Response onRequest(RequestContext context) {
final request = context.request;
final headers = request.headers; // Map<String, dynamic>
...
}


Когда вы настроили маршруты, middleware и работу с заголовками, нужно сгенерировать код маршрутов, чтобы сервер мог их использовать.

Для этого используйте:

dart_frog build


Это создает сгенерированный код маршрутов в директории build/, который используется сервером (bin/server.dart).

❗️ При работе с dart_frog важно поддерживать правильную вложенность папок, чтобы маршруты сгенерировались корректно. Более подробно можно прочитать в документации Dart Frog.
  • 👍 7
  • ❤ 4
  • 💩 2
More from @flutterfriendly
  1. May 14, 2026👀Какой сложный вопрос или тема по Flutter вас сейчас беспокоят? Может, задача не идет, ба…
  2. Apr 17, 2026💭Привет! Это Роза, Flutter-разработчица Friflex! Уверена, многие из вас знакомы с Dart De…
  3. Apr 8, 2026Привет, друзья! Делимся нашей страничкой на Хабре, чтобы всегда оставаться на связи. Там е…
  4. Apr 3, 2026🌸Апрель в календаре и на экране Весна зовет обновлять визуальное: убирать темные темы и в…
  5. Apr 1, 2026Всегда с нетерпением ждем этого дня, чтобы сделать подборку ИТ-мемов Пусть поводов для улы…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →