Этот инструмент мгновенно превращает вашу базу данных SQL в бэкенд (Directus)

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00Итак, сколько раз вы переписывали один и тот же бэкенд?
00:00:04CRUD, аутентификация, админ-панель, загрузка файлов.
00:00:07Часто то, что кажется созданием нового, на самом деле — просто повторение старого.
00:00:10Что, если бы вы могли натравить один инструмент на существующую базу SQL и получить готовый бэкенд?
00:00:15Это Directus — API в реальном времени и панель управления для контента в базах данных SQL.
00:00:21Многие разработчики начинают понимать, что всё это время они шли по сложному пути.
00:00:25Позвольте мне показать, как всё это работает, всего за пару минут.
00:00:30[МУЗЫКА]
00:00:33Самая большая проблема бэкенда для большинства из нас — не сложность, а повторение.
00:00:38Мы не решаем новые задачи, мы снова и снова пишем один и тот же код,
00:00:42и это просто съедает наше время.
00:00:44Directus избавляет от этого.
00:00:46Он подключается напрямую к вашей базе Postgres, MySQL или Oracle.
00:00:50Никаких миграций, никакого воссоздания схемы где-то ещё.
00:00:53Мы мгновенно получаем REST и GraphQL API,
00:00:57права доступа на уровне полей, подписки в реальном времени,
00:01:01автоматизацию потоков, работу с файлами и чистый интерфейс админки.
00:01:05Самое крутое здесь то, что ваша база данных остается на месте.
00:01:08Это не какой-то дублирующий слой.
00:01:10Это гораздо важнее, чем кажется на первый взгляд.
00:01:12А теперь позвольте мне показать.
00:01:13Если вам нравятся open-source инструменты и советы по ускорению работы —
00:01:17обязательно подпишитесь.
00:01:18У нас постоянно выходят новые видео.
00:01:20Итак, начнем с абсолютного нуля с чистой установкой Directus,
00:01:24без таблиц в базе и без каких-либо предзагруженных данных.
00:01:27Просто чистый холст, я уже создал здесь аккаунт.
00:01:32И вместо того чтобы подключаться к чему-то готовому,
00:01:34я соберу полноценное приложение для управления заказами буквально за минуту.
00:01:39Сначала я создаю коллекцию и назову её «Orders» (Заказы), вот так.
00:01:45И всё.
00:01:45Теперь у приложения есть место для хранения данных, и мы можем добавить детали.
00:01:51Я выберу и переопределю те поля, которые нам нужны,
00:01:54например: клиент, дата и прочие важные вещи.
00:01:58Затем я могу вручную добавить любые другие поля,
00:02:00которые, по нашему мнению, пригодятся для подобной задачи.
00:02:03Я могу добавить имя клиента, email, продукт в виде выпадающего списка,
00:02:08где можно указать ключ и значение.
00:02:10То же самое сделаю для суммы и статуса.
00:02:13Каждое поле добавляет детали к данным, которые мы будем хранить.
00:02:16И заметьте, чего здесь не хватает.
00:02:18Правильно, SQL.
00:02:19Никакого SQL.
00:02:20Никаких миграций.
00:02:22Не нужно переключаться между вкладками, чтобы писать файл схемы.
00:02:25Всё мгновенно сохраняется прямо здесь, в Directus.
00:02:28Теперь я могу просто перейти в режим просмотра контента и начать добавлять заказы.
00:02:32Добавлю первый заказ, просто тестовый аккаунт.
00:02:35Добавлю ещё один.
00:02:36И, допустим, третий, да?
00:02:39Теперь у нас в системе есть три разных заказа.
00:02:42У нас появились реальные данные, с которыми можно начать работать.
00:02:45Но сейчас доступ открыт для всех, а значит, любой может делать что угодно.
00:02:49Давайте это исправим.
00:02:50Как нам это сделать?
00:02:51С помощью прав доступа.
00:02:53Я перехожу к роли «Public» (Публичная).
00:02:55Найду созданную нами коллекцию заказов.
00:02:58Включу право на чтение.
00:03:00И я прослежу, чтобы всё остальное здесь было выключено.
00:03:03То есть создание, обновление, удаление —
00:03:05всё это теперь запрещено.
00:03:06Теперь всё под контролем и гораздо безопаснее.
00:03:10Окей, а теперь начинается самое интересное,
00:03:12потому что мы можем настроить автоматизацию и создать рабочие процессы.
00:03:16Я перейду в этот раздел и создам новый поток (flow).
00:03:19Назову его как-нибудь просто, отражая суть.
00:03:22Например: «Оповещение о новом заказе».
00:03:24Простое имя, понятно для чего.
00:03:26И я выберу элементы из созданной нами коллекции «Orders».
00:03:31Теперь я могу настроить триггер.
00:03:33В качестве триггера я выберу событие создания нового элемента,
00:03:37конкретно в коллекции заказов.
00:03:39Так что каждый раз при поступлении нового заказа будет что-то происходить.
00:03:43Я добавлю операцию.
00:03:44Мы будем отправлять письмо.
00:03:46Напишу тему письма.
00:03:47Добавлю сюда свой email.
00:03:49А в тело письма я подтяну данные о заказе.
00:03:52То есть при каждом новом заказе эти данные будут уходить на почту.
00:03:56Теперь сохраняю операцию, сохраняю поток, и готово.
00:04:00А теперь смотрите.
00:04:02Я вернусь назад.
00:04:03В свой исходный файл Docker Compose я добавил Mailpit для тестов.
00:04:07Это очень простой способ проверить функцию отправки почты.
00:04:11Я создаю еще один заказ, как и раньше, ничего особенного,
00:04:14но на этот раз кое-что изменилось.
00:04:16Теперь это автоматически запускает поток, и уходит письмо с деталями.
00:04:20Здесь нет никакой бэкенд-логики.
00:04:22Не нужно ничего связывать кодом вручную.
00:04:25Всё началось с нуля: ни таблиц, ни бэкенда, ни четкой структуры.
00:04:30И всего за несколько минут мы получили рабочее приложение с правами доступа и,
00:04:33что самое крутое, с автоматизацией.
00:04:35Именно поэтому Directus кажется таким классным.
00:04:38Это как сочетание визуальной логики базы данных со встроенными функциями n8n или Zapier,
00:04:43хотя на самом деле он конкурирует не с ними.
00:04:45Так что же такое Directus на самом деле?
00:04:47Это open-source платформа данных, которая надстраивается над вашей SQL-базой.
00:04:52Она не стоит рядом с ней.
00:04:53Она стоит прямо над ней.
00:04:55Эта модель «сначала база данных» и есть ключевой момент.
00:04:58Что это значит на практике?
00:04:59Для нас это означает несколько вещей.
00:05:01Во-первых, нет никакой привязки к вендору (lock-in).
00:05:03Полноценный SQL никуда не делся, и это работает с устаревшими системами.
00:05:07Поэтому его используют для бэкендов SaaS, внутренних инструментов, Headless CMS,
00:05:13ИИ-агентов с контролируемыми данными.
00:05:15Вы пытаетесь модернизировать старую систему без полной переписки кода.
00:05:19Ваша база данных — это и есть двигатель.
00:05:21Directus просто дает ей панель управления и элементы контроля.
00:05:24На первый взгляд, если вы работали с Strapi, Payload или Hasura,
00:05:28Directus покажется похожим, но они решают разные задачи.
00:05:33Strapi и Payload ориентированы на подход «сначала код» (code-first).
00:05:36Вы описываете схемы в коде, а затем воссоздаете свою структуру там.
00:05:40Да, это работает, но это лишняя работа.
00:05:42Directus меняет подход парой нюансов.
00:05:45Ваша схема уже существует, поэтому вместо воссоздания вы просто подключаете её.
00:05:50Совсем другой рабочий процесс.
00:05:52Hasura хороша для быстрого GraphQL, но возможности Directus шире.
00:05:58Вы получаете API.
00:05:59Да, но еще вы получаете рабочее пространство админа, права, файлы и автоматизацию.
00:06:05И вот то, что больше всего ценится разработчиками после пробы: права доступа.
00:06:10Я говорю не просто о каких-то базовых правилах.
00:06:12Это реальный контроль без всяких плагинов.
00:06:15Так что, если ваша задача просто «нужен бэкенд», у вас есть выбор.
00:06:18Но если ваша задача — «я не хочу снова переписывать бэкенд», то это другое дело.
00:06:23Конечно, идеальных инструментов не бывает, но этот очень хорош.
00:06:26Что мне показалось особенно крутым?
00:06:28Права доступа просто работают. Это супер.
00:06:30Потоки избавляют от кучи рутинной работы.
00:06:32Интерфейс очень чистый и быстрый, и его легко развернуть через Docker.
00:06:37Ко всему прочему, он отлично масштабируется.
00:06:39Но при всех плюсах, всегда есть и свои минусы.
00:06:43Компромиссы таковы: сложные потоки могут потребовать времени.
00:06:46Если вы работали с n8n или чем-то подобным, вы понимаете.
00:06:49Документация не всегда полная.
00:06:51И если вы хостите его сами, инфраструктурой тоже занимаетесь сами.
00:06:54Плюс, сложные конфигурации могут выглядеть запутанно при локальной работе.
00:06:57Directus просто убирает конкретный вид повторяющейся работы над бэкендом.
00:07:00Стоит ли Directus того?
00:07:02Для многих из нас — скорее всего, да.
00:07:03Всё зависит от задачи, особенно если у вас уже есть SQL-данные,
00:07:07или если вы устали постоянно переписывать базовые бэкенды,
00:07:11тогда это действительно ценный инструмент.
00:07:13Он экономит время, упрощает поддержку, и вы сохраняете контроль над данными.
00:07:17Повторюсь, это open-source.
00:07:19Всё под нашим контролем.
00:07:20Когда его НЕ стоит использовать?
00:07:22Если у вас строгий TypeScript в огромном монорепозитории, то вряд ли.
00:07:26Если у вас вообще нет базы данных — тоже нет.
00:07:29И если вы хотите, чтобы абсолютно всё описывалось кодом с самого начала,
00:07:33то какой-нибудь Payload подойдет гораздо больше.
00:07:34Но если вы сейчас думаете: «Стоп, он может просто встать поверх моей базы?»
00:07:38Да, может.
00:07:39Так что, возможно, стоит попробовать.
00:07:41Если вам нравятся open-source инструменты и советы по коду — подписывайтесь на
00:07:45канал Better Stack.
00:07:46Увидимся в следующем видео.

Key Takeaway

Directus устраняет повторение бэкенд-задач за счет мгновенного наслоения API, системы прав доступа и автоматизации поверх существующих SQL-баз без изменения их структуры.

Highlights

Directus подключается напрямую к существующим базам данных Postgres, MySQL или Oracle без необходимости проведения миграций.

Инструмент мгновенно генерирует REST и GraphQL API на основе текущей схемы данных.

Платформа обеспечивает контроль доступа на уровне отдельных полей и поддерживает подписки в реальном времени.

Автоматизация рабочих процессов позволяет настраивать триггеры на события в базе данных, например, отправку email при создании записи.

Модель data-first исключает привязку к вендору (lock-in), так как SQL-база остается независимой и доступной для других инструментов.

Развертывание системы осуществляется через Docker, обеспечивая чистое и быстрое управление контентом.

Timeline

Проблема дублирования кода в бэкенде

  • Разработчики тратят значительное время на повторное написание CRUD-операций и систем аутентификации.
  • Directus выступает как API в реальном времени и панель управления, работающая поверх существующих данных.

Создание новых приложений часто сводится к повторению старых задач, таких как загрузка файлов и создание админ-панелей. Directus решает эту проблему, предлагая готовый слой логики, который не требует воссоздания схемы данных или переноса базы.

Создание приложения без написания SQL-запросов

  • Коллекции данных и поля создаются через визуальный интерфейс без написания файлов схем.
  • Изменения сохраняются мгновенно, позволяя сразу перейти к добавлению контента в базу.

Процесс сборки приложения для управления заказами занимает около минуты. В интерфейсе определяются типы полей, такие как выпадающие списки для продуктов или поля для email, при этом потребность в ручном написании SQL полностью отсутствует.

Безопасность и автоматизация бизнес-процессов

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

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

Сравнение Directus с альтернативными платформами

  • В отличие от Strapi и Payload, Directus использует подход database-first вместо code-first.
  • Платформа предоставляет полноценное рабочее пространство админа и управление файлами в дополнение к API.

Модель работы поверх базы данных позволяет модернизировать устаревшие системы без полной переписки кода. Пока другие инструменты требуют описания схем в коде, этот инструмент просто подключается к существующему двигателю данных.

Преимущества и ограничения использования

  • Система легко масштабируется и имеет чистый интерфейс, но требует самостоятельного управления инфраструктурой при self-hosting.
  • Инструмент не подходит для проектов со строгим TypeScript в монорепозиториях или при отсутствии базы данных.

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

Community Posts

View all posts