Как создать бэкенд для Deno?
В этом учебном пособии вы узнаете, как создать бэкенд для Deno с использованием Back4App.
Мы пройдем через каждый шаг, чтобы интегрировать ключевые функции Back4App — базу данных, REST API, аутентификацию пользователей, хранение файлов и живые запросы — в среду Deno.
Вы увидите, как общаться с Back4App через REST-эндпоинты и создать полную инфраструктуру без необходимости управлять серверами самостоятельно.
Когда вы используете Back4App, вы можете пропустить ручную настройку серверов с Deno, экономя время и усилия.
Вы сосредоточитесь на написании более простого кода благодаря стандартной библиотеке Deno и современному подходу.
К концу этого руководства по созданию бэкенда для Deno у вас будет четкий путь для интеграции расширенной безопасности, облачного кода и запланированных задач в ваше приложение Deno.
После завершения этого учебника вы сможете легко запустить сервер, обрабатывать REST API, интегрировать аутентификацию пользователей, хранить файлы и планировать задачи.
Вы также поймете, как управлять своими данными с помощью подхода fetch в Deno, используя REST API Back4App.
- Учетная запись Back4app и новый проект Back4app Начало работы с Back4app. Если у вас нет учетной записи, вы можете создать ее бесплатно. Используйте ссылку выше, чтобы подготовить ваш проект.
- Установите Deno Вы можете получить Deno на https://deno.land. Установите Deno на вашу операционную систему и подтвердите это с помощью deno --version.
- Знание основных концепций Deno Таких как модули, файловые системы, deno run --allow-net, или как импортировать модули приложения из стандартной библиотеки.
- Базовые знания REST API Мы будем использовать вызовы fetch и заголовки типа контента для обработки данных, поэтому убедитесь, что вы знаете основы REST и JSON.
Убедитесь, что у вас есть эти предварительные требования перед началом. Наличие настроенного проекта Back4App и работающей локальной среды Deno позволит вам легко следовать этому учебнику.
Основой для вашего Deno бэкенда является проект Back4App. Если вы еще не создали его:
- Войдите в свою учетную запись Back4App.
- Нажмите кнопку “Новое приложение” в вашей панели управления Back4App.
- Дайте вашему приложению имя (например, “Deno-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
Как только ваш проект будет готов, он появится в вашей панели управления Back4App. Этот проект — это место, где вы будете настраивать базы данных, безопасность и API.
Поскольку у нас нет Parse SDK для Deno, мы будем использовать REST API конечные точки Back4App. Вы можете найти ID приложения, REST API ключ, и URL сервера в разделе Настройки приложения или Безопасность и ключи вашего приложения.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
На протяжении этого руководства мы будем использовать fetch для отправки запросов из Deno в Back4App. Обязательно включите ваш API-ключ и заголовки типа контента в каждом вызове.
На этом шаге вы создадите модель данных на Back4App и будете взаимодействовать с ней, используя REST API из Deno.
- Перейдите в раздел “База данных” на вашей панели управления Back4App.
- Нажмите “Создать новый класс” и назовите его, например, “Todo.”
- Добавьте соответствующие столбцы (например, title (String), isCompleted (Boolean)).
![Создать новый класс Создать новый класс](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Вы также можете разрешить Parse автоматически создавать эти столбцы при сохранении данных.
AI-агент Back4App может разработать вашу схему:
- Откройте AI-агента в вашей панели управления Back4App.
- Опишите вашу модель данных (например, “Создайте класс Todo с полями title, description и isCompleted.”).
- Позвольте агенту сгенерировать схему автоматически.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Это помогает вам быстро управлять более сложными схемами.
Из Deno вы можете запустить сервер, вызывая REST-эндпоинты с помощью fetch. Например, чтобы создать Todo:
To fetch Todos:
You can run these with:
Back4App also provides a GraphQL endpoint: https://parseapi.back4app.com/graphql
Живые запросы обновляют вас в реальном времени, но Deno не имеет родной библиотеки Parse LiveQuery. Вы все равно можете настроить функцию живого запроса в вашей панели управления Back4App для других клиентов или использовать WebSocket в Deno для ручной подписки. Для получения дополнительной информации смотрите официальные документы по живым запросам.
ACL (Списки управления доступом) и CLP (Разрешения на уровне класса) Back4App защищают ваши данные. Используйте CLP для установки правил по умолчанию для целого класса. Затем используйте ACL для ограничений на уровне объектов.
- Откройте раздел базы данных в вашей панели управления Back4App.
- Выберите класс (например, “Todo”).
- Перейдите на вкладку разрешений на уровне класса.
- Включите или отключите доступ на чтение/запись для общественности или для аутентифицированных пользователей по мере необходимости.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
При создании или обновлении объекта через REST вы можете включить атрибут ACL в тело запроса. Например:
Этот пример позволяет только роли “Администраторы” читать или записывать. Доступ для общественности отключен.
Облачный код – это место, где вы храните безопасную серверную логику. Вы не управляете серверами самостоятельно. Вы можете добавлять проверки или триггеры для конкретных классов.
Вы можете определить облачную функцию (на JavaScript) и развернуть ее в своем приложении. Например, функция для проверки длины текста может выглядеть так:
Вы можете развернуть код через Back4App CLI или панель облачного кода в вашей панели управления Back4App.
Вы можете импортировать внешние библиотеки с помощью require(). После развертывания серверная среда будет их выполнять. Это полезно для сложных задач, но помните, что выполнение их из Deno отделено от вашей среды облачного кода на Back4App.
Back4App использует класс Parse User для аутентификации. Пока вы работаете с Deno, вы можете вызывать REST-эндпоинты для управления пользователями.
Вы можете настроить Google, Facebook, Apple и других провайдеров на Back4App. Затем вы будете вызывать специальные конечные точки с токенами OAuth. См. документацию по социальному входу Back4App для получения подробной информации.
Чтобы загрузить файлы из Deno, используйте POST-запрос к https://parseapi.back4app.com/files/<FILENAME>. Например:
Затем вы можете сохранить URL-адрес полученного файла в своих объектах класса. Этот метод идеально подходит для хранения изображений или документов, пока вы запускаете сервер в Deno.
Подтверждение электронной почты обеспечивает легитимный доступ. Сброс пароля помогает пользователям безопасно восстановить доступ.
- Включите подтверждение электронной почты в вашей панели управления Back4App в разделе Настройки электронной почты.
- Настройте свои шаблоны подтверждения.
- Включите сброс пароля и установите предпочитаемый макет электронной почты.
Когда пользователь регистрируется, он получает ссылку для подтверждения, если вы включили проверку электронной почты. Для сброса пароля вызовите конечную точку REST POST /requestPasswordReset.
Облачные задания выполняются периодически без вмешательства человека. Например, вы можете ежедневно удалять старые записи или отправлять регулярные напоминания по электронной почте.
После развертывания этой задачи вы можете запланировать ее в Настройки приложения > Настройки сервера > Фоновая работа на вашей панели управления Back4App.
Вебхук – это HTTP-обратный вызов, который срабатывает, когда происходят события, такие как создание или обновление объектов. Вы можете интегрироваться с Slack, Stripe или любым внешним сервисом.
- Откройте “Еще” > “Вебхуки” в панели управления Back4App.
- Нажмите “Добавить вебхук” и укажите конечную точку вашего стороннего сервиса.
- Установите триггеры или классы, для которых вы хотите отправлять запросы.
![Добавление вебхука Добавление вебхука](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Это позволяет внешним системам получать данные всякий раз, когда вы создаете или изменяете объекты в Back4App.
Непрофессиональные команды могут использовать эту панель для визуального управления данными. Это упрощает операции CRUD и обзоры данных.
- Перейдите в панель управления приложением > Дополнительно > Админ-приложение и выберите «Включить админ-приложение».
- Создайте администратора для входа.
- Установите поддомен для вашего админ-приложения.
![Включить админ-приложение Включить админ-приложение](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
Затем вы можете войти в админ-приложение для безопасного управления записями.
В этом учебном пособии вы узнали, как создать бэкенд для Deno на Back4App. Вы создали модели данных, обработали аутентификацию пользователей, узнали о ACL и CLP для безопасности и запланировали облачные задания.
Вы также увидели, как интегрировать внешние API через вебхуки и как запускать сервер или REST API с помощью команд deno run --allow-net.
Эта настройка позволяет вам быстро начать без ручной настройки файловых систем или сложностей стандартной библиотеки для архитектуры сервера.
Следующие шаги:
- Расширьте ваше приложение Deno с дополнительными конечными точками и сложной логикой с использованием облачного кода.
- Интегрируйте больше сервисов (например, платежные шлюзы, аналитика) с вашими данными Back4App.
- Ссылайтесь на официальную документацию Back4App для более глубоких советов по безопасности, производительности и анализу логов.
- Экспериментируйте с продвинутыми функциями реального времени или хранилищем deno kv, связывая данные между вашей средой выполнения Deno и надежной средой Back4App.
С вашими новыми знаниями вы можете уверенно развернуть безопасный, масштабируемый и насыщенный функциями бэкенд Deno, поддерживаемый Back4App.
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)