Quickstarters
CRUD Samples
How to a Basic CRUD App with Alpine.js?
41 мин
обзор в этом руководстве вы научитесь создавать приложение crud (создание, чтение, обновление, удаление) с использованием alpine js этот учебник проведет вас через основные операции, необходимые для динамического управления данными, используя back4app в качестве надежного сервиса бэкенда мы начнем с настройки нового проекта back4app под названием basic crud app alpinejs этот проект будет служить вашим бэкендом для управления данными после инициализации вашего проекта вы разработаете гибкую схему базы данных, определив коллекции и поля — либо вручную, либо с помощью ai агента back4app этот шаг гарантирует, что ваш бэкенд структурирован для надежных операций crud затем вы будете использовать приложение администратора back4app, удобный инструмент перетаскивания, чтобы легко управлять вашими коллекциями этот интерфейс упрощает задачи управления данными наконец, вы подключите свой фронтенд на alpine js к back4app, используя rest или graphql api, и обеспечите безопасность вашего бэкенда с помощью надежных средств контроля доступа к концу этого учебника у вас будет готовое к производству веб приложение, которое поддерживает основные операции crud вместе с аутентификацией пользователей и безопасными обновлениями данных что вы узнаете как создавать crud приложения с эффективным сервером методы проектирования масштабируемой модели данных и связывания её с фронтендом на alpine js советы по использованию инструмента администрирования с функцией перетаскивания для управления коллекциями стратегии развертывания вашего приложения с использованием контейнеризации и веб технологий развертывания предварительные требования перед тем как начать, убедитесь, что у вас есть аккаунт back4app с готовым новым проектом смотрите начало работы с back4app https //www back4app com/docs/get started/new parse app для помощи среда разработки alpine js включите alpine js через cdn или npm в зависимости от настройки вашего проекта знание javascript, alpine js и принципов rest api обратитесь к документации alpine js https //alpinejs dev/start для получения дополнительной информации шаг 1 – инициация вашего проекта настройка нового проекта back4app войдите в свою панель управления back4app нажмите на кнопку “новое приложение” укажите имя проекта basic crud app alpinejs и следуйте инструкциям создать новый проект после создания ваш проект появится на панели управления, готовый к настройке бэкенда шаг 2 – создание схемы вашей базы данных построение вашей модели данных для нашего crud приложения вам нужно будет настроить несколько ключевых коллекций ниже приведены образцы коллекций с полями и типами данных, которые помогут вам в настройке схемы эти коллекции облегчают выполнение основных действий crud 1\ коллекция предметов эта коллекция содержит детали для каждого элемента поле тип цель ид идентификатор объекта автоматически сгенерированный основной идентификатор название строка название или заголовок элемента описание строка краткое резюме о предмете создано в дата метка времени для создания элемента обновлено дата метка времени для последнего обновления 2\ коллекция пользователей эта коллекция хранит учетные данные и детали пользователей поле тип цель ид идентификатор объекта автоматически сгенерированный основной идентификатор имя пользователя строка уникальный идентификатор пользователя электронная почта строка уникальный адрес электронной почты пользователя хэш пароля строка надежно сохраненный хэшированный пароль создано в дата время создания аккаунта обновлено дата метка времени для последнего обновления аккаунта вы можете вручную создать эти коллекции в панели управления back4app, добавив новый класс для каждой и определив соответствующие столбцы создать новый класс вы можете установить поля, выбрав тип, назвав их, добавив значения по умолчанию и отметив их как обязательные создать столбец использование ai агента back4app для создания схемы ai агент back4app помогает автоматизировать генерацию схем он создает ваши коллекции на основе подсказки, описывающей необходимые поля как использовать ai агента откройте ai агента из панели управления back4app введите подробное описание коллекций и необходимых полей просмотрите предложенную схему и примените ее к вашему проекту пример подсказки create the following collections 1\) collection items \ fields \ id objectid (auto generated) \ title string \ description string \ created at date (auto generated) \ updated at date (auto updated) 2\) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto generated) \ updated at date (auto updated) этот инструмент экономит время и обеспечивает согласованную, оптимизированную схему шаг 3 – активация интерфейса администратора и функций crud представляем приложение admin приложение back4app admin предлагает интерфейс без кода для управления вашими данными на сервере его функции перетаскивания делают задачи crud простыми и эффективными как включить приложение admin перейдите в раздел «дополнительно» на вашей панели управления back4app выберите admin app и затем нажмите enable admin app настройте свои первые учетные данные администратора для конфигурации ролей и системных коллекций включить приложение admin после активации войдите в приложение admin, чтобы управлять вашими данными панель управления приложением admin выполнение действий crud с приложением admin внутри приложения admin вы можете создавать записи нажмите кнопку «добавить запись» в коллекции, такой как items читать и обновлять записи выберите запись, чтобы просмотреть детали или внести изменения удалять записи удалите ненужные записи с помощью функции удаления этот интерфейс упрощает управление данными с интуитивно понятным дизайном перетаскивания шаг 4 – подключение alpine js к back4app когда ваш сервер готов, пора связать ваш фронтенд на alpine js с back4app использование rest/graphql api вы будете использовать rest или graphql для взаимодействия с вашим бэкендом пример получение элементов через rest // sample rest api call using fetch async function loaditems() { try { const response = await fetch('https //parseapi back4app com/classes/items', { headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' } }); const data = await response json(); console log('items loaded ', data results); } catch (error) { console error('error loading items ', error); } } loaditems(); интегрируйте эти вызовы api в ваши компоненты alpine js для выполнения операций crud шаг 5 – защита вашего бэкенда настройка списков контроля доступа (acl) защитите ваши данные, применяя acl к вашим записям например, чтобы создать приватный элемент async function addprivateitem(data, owner) { const itemdata = { title data title, description data description }; // define acl settings only the owner has read/write privileges const aclsettings = { " " { "read" false, "write" false }, \[owner] { "read" true, "write" true } }; try { const response = await fetch('https //parseapi back4app com/classes/items', { method 'post', headers { 'content type' 'application/json', 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' }, body json stringify({ itemdata, acl aclsettings }) }); const result = await response json(); console log('private item added ', result); } catch (error) { console error('error adding private item ', error); } } настройка разрешений на уровне класса (clp) в панели управления back4app установите clp для каждой коллекции, чтобы обеспечить соблюдение стандартных политик доступа, гарантируя, что только авторизованные пользователи могут получить доступ к конфиденциальным данным шаг 6 – реализация аутентификации пользователей создание учетных записей пользователей back4app использует класс user от parse для управления аутентификацией в вашем проекте на alpine js обрабатывайте регистрацию и вход пользователя через api вызовы пример регистрация пользователя с помощью alpine js sign up аналогичный метод можно реализовать для входа пользователя и управления сессиями шаг 7 – развертывание вашего фронтенда на alpine js с помощью веб развертывания функция веб развертывания back4app позволяет вам легко хостить ваш фронтенд на alpine js в этом разделе вы подготовите вашу производственную сборку, зафиксируете ваш код в github, подключите ваш репозиторий к веб развертыванию и запустите ваше приложение 7 1 создание ваших производственных активов откройте директорию вашего проекта в терминале запустите вашу команду сборки (если используете процесс сборки для alpine js) npm run build это создаст папку (обычно dist или build ) с оптимизированными статическими файлами подтвердите, что ваша папка сборки содержит файл index html вместе с необходимыми активами 7 2 организуйте и загрузите ваши исходные файлы ваш репозиторий на github должен содержать все исходные файлы для вашего проекта на alpine js общая структура может быть следующей basic crud app alpinejs frontend/ ├── node modules/ ├── public/ │ └── index html ├── src/ │ ├── main js │ └── components/ │ ├── itemslist js │ └── auth js ├── package json └── readme md пример файла src/main js document addeventlistener('alpine\ init', () => { alpine data('itemsapp', () => ({ items \[], newitemtitle '', newitemdescription '', async loaditems() { try { const response = await fetch('https //parseapi back4app com/classes/items', { headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' } }); const data = await response json(); this items = data results; } catch (error) { console error('failed to load items ', error); } }, async additem() { const payload = { title this newitemtitle, description this newitemdescription }; try { await fetch('https //parseapi back4app com/classes/items', { method 'post', headers { 'content type' 'application/json', 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' }, body json stringify(payload) }); this newitemtitle = ''; this newitemdescription = ''; this loaditems(); } catch (error) { console error('error adding item ', error); } } })); }); коммит вашего кода в github инициализируйте репозиторий git в папке вашего проекта git init стадируйте ваши файлы git add зафиксируйте ваши изменения git commit m "первоначальный коммит фронтенда alpine js" создайте новый репозиторий на github (например, basic crud app alpinejs frontend ) отправьте ваш код git remote add origin https //github com/your username/basic crud app alpinejs frontend git git push u origin main 7 3 связывание вашего репозитория github с веб развертыванием войдите в свою панель управления back4app и выберите свой проект ( basic crud app alpinejs ) откройте раздел web deployment подключите свою учетную запись github и выберите свой репозиторий и ветку, содержащие ваш код alpine js 7 4 настройка параметров развертывания команда сборки если в вашем проекте отсутствует папка с предварительно собранными файлами, укажите команду (например, npm run build ) каталог вывода установите его на папку с вашими статическими файлами (например, build или dist ) переменные окружения добавьте любые необходимые переменные, такие как ключи api 7 5 докеризация вашего приложения на alpine js (по желанию) если вы хотите развернуть с помощью docker, включите dockerfile , например \# use an official node image for building from node 16 alpine as build \# set working directory workdir /app \# copy dependency files and install copy package json / run npm install \# copy source and build app copy run npm run build \# use nginx to serve the static files from nginx\ stable alpine copy from=build /app/build /usr/share/nginx/html expose 80 cmd \["nginx", " g", "daemon off;"] выберите опцию docker в вашей конфигурации веб развертывания, если это необходимо 7 6 запуск вашего приложения нажмите кнопку deploy в back4app следите за процессом развертывания, пока back4app загружает ваш код, собирает его и разворачивает после развертывания вы получите url, по которому размещено ваше приложение на alpine js 7 7 тестирование вашего развертывания посетите предоставленный url в вашем браузере убедитесь, что ваше приложение загружается правильно, маршруты работают как ожидалось, а ресурсы обслуживаются корректно устраните любые проблемы, проверив журналы консоли браузера и журналы развертывания back4app шаг 8 – заключительные мысли и будущие улучшения поздравляем! вы создали полное crud приложение с использованием alpine js и back4app вы настроили проект basic crud app alpinejs , создали подробные коллекции базы данных и использовали инструмент администрирования без кода для управления данными кроме того, вы подключили свой фронтенд на alpine js к бэкенду с помощью rest api и обеспечили безопасную обработку данных следующие шаги улучшите свой интерфейс расширьте свои компоненты alpine js с помощью расширенных функций, таких как детализированные представления элементов или обновления в реальном времени добавьте больше функциональности изучите возможность добавления дополнительной логики на бэкенде, сторонних api или сложных контролей доступа дальнейшее обучение посетите документацию back4app https //www back4app com/docs и дополнительные ресурсы, чтобы углубить свои знания о сложных интеграциях счастливого кодирования и наслаждайтесь созданием вашего следующего проекта!
