Как создать динамический сайт с API, без кодирования бэкенда! 😮

Для тех, кто не знает, Dev Community объявил хакатон для Appwrite в прошлом месяце. Я не был знаком с Appwrite, и когда я нашел его в интернете, я обнаружил, что это BaaS (Backend as a service) платформа. Не буду врать, я не совсем понимал реальное значение «бэкенд как сервис». Я имею в виду, что он будет делать для меня? Как он будет создавать для меня API? Можно ли вообще иметь бэкенд, работающий без кода бэкенда? Плохо ли рассчитывать на платформу BaaS в моем проекте?

После поиска в интернете и чтения документации я понял, что эта технология предназначена для того, чтобы делать ВЕЛИКИЕ вещи и помогать как разработчикам бэкенда, так и разработчикам фронтенда.

Я планировал сделать небольшой проект для хакатона Appwrite, но в итоге решил бросить себе вызов и сделать что-то большое. Я создал потрясающий проект со сложной структурой бэкенда. Также я проследил, как можно реализовать связи с базой данных, комментарии, элементы управления администратора, динамические профили пользователей, динамические URL, хранение и получение изображений, а также как интегрировать различные API и многое другое. Appwrite действительно сделал все это довольно приятным для меня.

В этой статье я расскажу вам, как начать, создавать и развивать BaaS, и почему это лучший выбор, который поможет вам начать проект, который вы задумали, немедленно, не тратя время на беспокойство о бэкенде.

Но сначала, если вам интересно, что я создал. Посмотрите на мой проект и убедитесь сами 👉 Проект Tailwinder

Совет: Видео демонстрация в конце поста по ссылке выше ️


Таблица содержания
Определения
Установка
Консоль
Начало работы
Аутентификация
База данных
Хранилище
Аватар
Заключение

Прежде чем мы приступим к действиям, вам нужно знать несколько важных вещей об Appwrite. Я собираюсь объяснить вам все так, как будто вам пять лет, только потому, что именно так я хотел бы, чтобы ко мне относились, когда я изучаю что-то новое 🤔.

Определения:

Что такое BaaS (Backend As A Service)?

Говоря простым языком, группа великих разработчиков бэкенда собралась вокруг и создала платформу и разработала наиболее распространенные API, которые могут понадобиться большинству веб-сайтов. Это способ сделать вашу жизнь проще, ваш код бэкенда короче и быстрее начать ваши проекты.

Что такое Appwrite?

Это платформа BaaS, но она самая простая и элегантная из всех, что я видел до сих пор. Они создали эти API, помня о гибкости и всех настройках, которые могут вам понадобиться, чтобы сделать эти API полезными и адаптированными для вашего сайта. Appwrite имеет множество SDK для Web, Flutter, Android, Apple и Node.

Что такое SDK?

Комплект средств разработки программного обеспечения (SDK) — это набор инструментов, созданных разработчиками для упрощения взаимодействия между фронтендом и API. Вместо того чтобы писать много кода разными способами, SDK унифицировали и упростили способ взаимодействия с API.

Что такое Docker?

Appwrite упакован в виде набора контейнеров Docker. Вы можете установить и запустить Appwrite на любой операционной системе, которая может запускать Docker CLI. так что да! Вам нужно знать, что такое Docker.

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

Именно это и есть Docker, он позволяет разработчикам упаковывать приложения в контейнеры docker.

Это место для хранения вашего пакета, который хорошо подготовлен и оснащен всем необходимым для того, чтобы ваше приложение работало в любой среде.

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

Звучит слишком много? Не волнуйтесь! Вам не нужно изучать Docker, чтобы использовать Appwrite, пока что 😉.


Теперь мы вместе узнаем, на что способен Appwrite и как BaaS может помочь вам как разработчику. Сначала вам нужно будет установить Docker на вашу машину, а затем Appwrite в ваш проект, я не буду описывать процесс установки, так как есть много ресурсов, объясняющих эту часть.

Установка:

Appwrite Installation Docs очень описателен и имеет множество вариантов, но если вы хотите получить другой источник информации, вы можете ознакомиться с этой статьей от @lohanidamodar

Также если вы хотите посмотреть, как я подключил Appwrite к своему проекту, посмотрите, как я это сделал, отметив, что вы всегда должны скрывать свой ключ appwrite, я этого не сделал только потому, что это пока локальный проект.

1- Web SDK
2- Node SDK

Консоль :

После успешной установки и привязки Appwrite к вашему проекту. Вы получите доступ к странице консоли Appwrite. Это ваш командный пункт управления, где у вас есть полный обзор всего, что происходит в вашем приложении. На скриншоте выше показана моя консольная страница для проекта Tailwinder.

Начало работы:

Я собираюсь использовать проект Tailwinder в качестве примера при объяснении. Я считаю, что объяснение на реальном примере проекта — это лучший способ показать вам, как все это работает. Я сосредоточусь на возможностях Appwrite и BaaS в целом, а не на самом проекте.

  • Вот репозиторий Github:

MooseSaeed / Tailwinder

Добро пожаловать в Tailwinder 👋

Сообщество с открытым исходным кодом для поклонников tailwind — на базе Appwrite

Этот проект был создан для хакатона Appwrite на Dev Community

Расположение API Appwrite Node SDK

ЗДЕСЬ

Используемый стек
Appwrite
Appwrite Node SDK
TailwindCSS
VueJS
Vue Router
SwiperJS
AnimateCSS

Дополнительная информация

Таблица содержания (структура Tailwinder):
1- Домашняя страница
1-a- Динамическая картинка профиля (функция Appwrite)
1-b- Динамический переключатель темной/светлой темы (функция Appwrite)
1-c- Выцветающая панель навигации
1-d- Крутой вид логотипа Tailwinder
2- Регистрация/Вход в систему
2-a- Динамический URL пользователя (функция Appwrite)
2-b- Вход/выход пользователя (функция Appwrite)
3- Профиль пользователя
3-a- Динамическая картинка профиля (функция Appwrite)
3-b- Динамическая информация о пользователе (функция Appwrite)
3-c- Обновление информации о пользователе (функция записи приложений)
3-d- Динамические взносы пользователя (функция Appwrite)
4- Компоненты
4-a- Динамическая выборка компонентов (функция Appwrite)
4-b- Добавление нового компонента (функция Appwrite)
4-c- Просмотр компонентов (функция Appwrite)
5- Академия Tailwinder
5-a- Динамическая выборка ресурсов (функция Appwrite)
5-b- Академия добавления / просмотра

Просмотр на GitHub

Аутентификация:

Appwrite имеет огромный набор API, чтобы помочь вам управлять пользователями вашего проекта. Вам больше не придется писать много строк кода для создания пользователя, создания магического URL, обновления информации о пользователе … и т.д.

Если вы посмотрите на DOCs Appwrite, вы увидите, что первые два раздела в их REST API — это Account и User.

Сначала мне показалось, что я не совсем понимаю разницу между этими двумя API, но потом все стало ясно.

1- Account API:

Account API — это все о текущем вошедшем в систему пользователе. У вас есть доступ ко всем видам методов, но все они относятся к пользователю, который в данный момент вошел в систему. Поэтому в основном вы будете использовать Web SDK, поскольку он относится к клиентской части.

2 — User API:

В то время как User API имеет дело со всеми пользователями в вашем проекте. Считайте, что это административный API для всех пользователей. Этот REST API вы можете интегрировать с помощью интеграции на стороне сервиса с Node SDK.

  • Пример:

👉Github Исходный код страницы профиля пользователя👈.

В проекте Tailwinder, когда пользователь обновляет свою личную информацию на странице своего профиля, я использую Account API для этого, потому что мне нужно, чтобы только текущий зарегистрированный пользователь обновил свою информацию. Но когда дело доходит до просмотра этой информации на странице профиля пользователя, я должен был использовать User API, чтобы сделать эту информацию видимой для всех. Если бы я использовал Account API для просмотра информации о пользователе, это не сработало бы, потому что он может получить информацию только о текущем вошедшем пользователе, поэтому был использован User API.

База данных:

Представьте себе мир, в котором вам не нужно беспокоиться о базе данных или проверке форм, мир, в котором не нужно создавать так много API для связи с базой данных, запросов и фильтрации списков строк или записей. Это именно то, что BaaS может сделать для вас, и здесь мы будем говорить об Appwrite.

Если у вас есть небольшой опыт работы с базами данных, поймите это так:

Appwrite позволяет хранить документы в так называемых «коллекциях». Эти коллекции можно рассматривать как контейнеры для любых документов, которые вы хотите сохранить в них. Каждая коллекция может иметь множество атрибутов, эти атрибуты — ваш способ сказать: «Эта коллекция должна принимать только те записи, которые соответствуют этим условиям».

Чтобы упростить это, думайте об этом так:

Термин записи приложений Обычный термин базы данных
Коллекции Таблицы
Атрибуты Колонки
Документы Строки
  • Пример:

Здесь я позволяю пользователю:

1- Просмотреть все компоненты tailwind, представленные пользователями.
2- Отправить новый компонент.
3- Просмотреть детали выбранного компонента.

Для этого мне необходимо:

1- Создать коллекцию для типа компонента.

2- Установить атрибуты для коллекции, чтобы ограничить и проверить записи.

И это все! Вы можете в это поверить? Вы можете использовать консоль для достижения этой цели, если предпочитаете вообще не писать код, или просто использовать Web и Server SDK для достижения того же самого результата.

Затем, конечно, вот логика исходного кода:

1- Просмотреть список всех компонентов.
2- Добавить новый компонент.
3- Просмотреть детали компонента.

Хранение:

Хранилище похоже на базу данных appwrite, но в хранилище контейнеры называются «ведрами» и используются для хранения ваших файлов. Это позволяет вам управлять файлами вашего проекта. Storage API — это отличный способ хранить, загружать, просматривать, скачивать и запрашивать все файлы вашего проекта.

  • Пример:

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

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

О том, как я это сделал, вы можете узнать здесь.

Аватар:

У них даже есть API для предоставления временного аватара для ваших пользователей. Допустим, новый пользователь регистрируется в вашем приложении. У этого пользователя должна быть стандартная фотография профиля, в большинстве случаев это сероватая человеческая фигура, что означает, что это пользователь-призрак. Вместо этого Appwrite предоставит вам картинку профиля по умолчанию с первой буквой имени и фамилии пользователя.

  • Пример:

Здесь логика проста, я проверяю, есть ли у пользователя ведро с его именем (сохранена ли картинка профиля), если нет, то отображаю аватар Appwrite.

Посмотрите исходный код здесь.


Заключение:

Appwrite — это технология, которая поможет вам быстрее начать свой проект. Но Appwrite — это один из провайдеров BaaS, есть много платформ, которые делают похожую работу с Appwrite, но я считаю Appwrite лучшей для меня до сих пор.

У вас больше нет оправданий для откладывания потрясающих проектов, которые вы задумали, разработка бэкенда никогда не была такой простой. В Appwrite и в BaaS в целом еще столько всего интересного, но я считаю, что этого достаточно для одной статьи. Возможно, я напишу еще одну с более подробной информацией о том, как начать проект с нуля и масштабировать его до полноценного живого проекта.

Теперь, когда вы сформировали приличные знания и осведомленность об Appwrite и BaaS, что вы думаете о них? Дайте мне знать в комментариях 🙂

Оцените статью
Procodings.ru
Добавить комментарий