Quickstarters
CRUD Samples
Как создать простое CRUD-приложение на Golang?
34 мин
введение в этом руководстве вы узнаете, как разработать основное crud (создание, чтение, обновление и удаление) приложение с использованием golang этот учебник охватывает основные операции, необходимые для эффективного управления данными, используя back4app в качестве надежного серверного решения теперь вы создадите сервер на golang, который будет взаимодействовать с back4app через restful вызовы сначала вы создадите и настроите проект back4app с именем basic crud app golang этот проект будет служить центральной базой данных для вашего приложения затем вы определите масштабируемую схему базы данных, установив детализированные коллекции и поля — либо вручную, либо с помощью ai агента back4app эта настройка гарантирует, что ваша система готова к эффективной манипуляции данными через операции crud после этого вы активируете приложение администратора back4app, удобный инструмент с функцией перетаскивания для управления вашими коллекциями это упрощает создание, чтение, обновление и удаление записей наконец, вы интегрируете свой сервер на golang с back4app, используя rest api, а также реализуете надежные меры безопасности и аутентификацию пользователей, где это необходимо к концу этого руководства у вас будет готовый к производству веб сервер на golang, который поддерживает основные операции crud и бесшовно соединяется с базой данных, управляемой back4app основные выводы понять, как строить приложения crud с помощью golang и управлять данными с использованием back4app получить представление о настройке масштабируемой архитектуры бэкенда и интеграции ее с rest api на golang научиться использовать приложение администратора back4app для удобного управления данными изучить техники развертывания, включая контейнеризацию для быстрого запуска предварительные требования перед началом убедитесь, что у вас есть следующее аккаунт back4app с новым проектом для получения инструкций ознакомьтесь с начало работы с back4app https //www back4app com/docs/get started/new parse app среда разработки golang установите go https //golang org/doc/install (рекомендуется версия 1 16 или новее) базовое понимание golang, rest api и http серверов при необходимости обратитесь к документации golang https //golang org/doc/ шаг 1 – настройка проекта создание нового проекта back4app войдите в свою учетную запись back4app нажмите кнопку “новое приложение” на вашей панели управления введите имя проекта basic crud app golang и следуйте инструкциям для создания вашего проекта создать новый проект после настройки проекта вы увидите его в списке на вашей панели управления back4app, готовым поддерживать вашу конфигурацию бэкенда шаг 2 – проектирование схемы базы данных определение вашей структуры данных для базового crud приложения вам нужно будет создать несколько коллекций вот примеры коллекций и полей, которые могут вам понадобиться 1\ коллекция предметов эта коллекция хранит информацию о каждом предмете поле тип данных описание ид идентификаторобъекта автоматически сгенерированный первичный ключ название строка название или заголовок элемента описание строка краткое описание предмета создано в дата метка времени создания элемента обновлено дата метка времени, указывающая на последнее обновление 2\ коллекция пользователей эта коллекция сохраняет данные пользователя и детали аутентификации поле тип данных описание ид идентификатор объекта автоматически сгенерированный первичный ключ имя пользователя строка уникальный идентификатор для пользователя электронная почта строка уникальный адрес электронной почты пользователя хэш пароля строка зашифрованный пароль для входа создано в дата время создания учетной записи обновлено дата время, когда аккаунт был последний раз обновлён вы можете вручную настроить эти коллекции через панель управления back4app, создав новый класс для каждой и определив столбцы создать новый класс вы можете добавить новые поля, выбрав тип данных, назвав поле, установив значения по умолчанию и указав, является ли оно обязательным создать колонку использование ai агента back4app для создания схемы ai агент back4app, доступный через вашу панель управления, может автоматически создать схему вашей базы данных на основе описательного запроса эта функция упрощает настройку проекта и обеспечивает согласованность как использовать ai агента запустите ai агента откройте панель управления back4app и найдите ai агента в настройках проекта опишите вашу модель данных введите подсказку, подробно описывающую коллекции и поля, которые вам нужны просмотрите и примените агент генерирует определения коллекций просмотрите и подтвердите изменения пример подсказки create the following collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated primary key) \ title string \ description string \ created at date (auto generated) \ updated at date (auto updated) 2\) collection users \ fields \ id objectid (auto generated primary key) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto generated) \ updated at date (auto updated) этот метод экономит время и помогает обеспечить надежность и оптимизацию вашей схемы шаг 3 – активация админ приложения и выполнение операций crud обзор админ приложения админ приложение back4app – это интуитивно понятный интерфейс без кода, который позволяет вам управлять вашими данными на сервере оно предоставляет интерфейс перетаскивания для создания, чтения, обновления и удаления записей включение админ приложения получите доступ к меню “дополнительно” на вашей панели управления back4app выберите “админ приложение” и затем нажмите “включить админ приложение ” настройте свои учетные данные администратора создав первоначального администратора, что также настраивает роли и системные коллекции включить админ приложение после активации войдите в админ приложение, чтобы управлять вашей базой данных панель управления приложения администратора использование приложения администратора для задач crud в приложении администратора вы можете создавать записи используйте кнопку «добавить запись» в коллекции (например, товары), чтобы вставить новые данные читать/обновлять записи нажмите на запись, чтобы просмотреть или изменить ее детали удалять записи удаляйте устаревшие записи с помощью опции удаления этот интерфейс упрощает управление данными с интуитивно понятным дизайном перетаскивания шаг 4 – интеграция golang с back4app теперь, когда ваш бэкенд настроен и управляется через приложение администратора, пришло время подключить ваше приложение на golang к back4app, используя restful конечные точки настройка вашего проекта на golang инициализируйте каталог вашего проекта на golang создайте папку с именем basic crud app golang и выполните go mod init basic crud app golang установите необходимые пакеты для этого руководства стандартной библиотеки будет достаточно, но вы можете добавить внешние библиотеки по мере необходимости пример кода для получения и отображения элементов ниже приведен пример программы на golang, которая извлекает элементы из вашей коллекции items в back4app package main import ( 	"encoding/json" 	"fmt" 	"io/ioutil" 	"log" 	"net/http" ) const ( 	appid = "your application id" 	restapikey = "your rest api key" ) type item struct { 	objectid string `json "objectid"` 	title string `json "title"` 	description string `json "description"` 	createdat string `json "createdat"` 	updatedat string `json "updatedat"` } type itemsresponse struct { 	results \[]item `json "results"` } func fetchitems() { 	url = "https //parseapi back4app com/classes/items" 	req, err = http newrequest("get", url, nil) 	if err != nil { 	 log fatalf("error creating request %v", err) 	} 	req header add("x parse application id", appid) 	req header add("x parse rest api key", restapikey) 	client = \&http client{} 	resp, err = client do(req) 	if err != nil { 	 log fatalf("error fetching items %v", err) 	} 	defer resp body close() 	body, err = ioutil readall(resp body) 	if err != nil { 	 log fatalf("error reading response %v", err) 	} 	var itemsresp itemsresponse 	if err = json unmarshal(body, \&itemsresp); err != nil { 	 log fatalf("error parsing json %v", err) 	} 	for , item = range itemsresp results { 	 fmt printf("title %s, description %s\n", item title, item description) 	} } func main() { 	fmt println("fetching items from back4app ") 	fetchitems() } эта программа отправляет get запрос к конечной точке items back4app, декодирует json ответ и выводит заголовок и описание каждого элемента расширение функциональности crud вы также можете реализовать функции на golang для создание элемента отправьте post запрос с данными элемента обновление элемента используйте put или post запрос для изменения существующих записей удаление элемента выполните delete запрос для удаления записей интегрируйте эти функции в полноценный http сервер, используя net/http пакет go для обработки маршрутов ваших операций crud шаг 5 – защита вашего бэкенда реализация контроля доступа улучшите безопасность ваших данных, применяя списки контроля доступа (acl) при выполнении операций crud например, убедитесь, что только авторизованные пользователи могут изменять или удалять данные, установив соответствующие acl через панель управления back4app и применяя их через ваш api на golang настройка разрешений на уровне классов настройте разрешения на уровне классов (clp) в интерфейсе back4app, чтобы ограничить доступ к данным для аутентифицированных пользователей или конкретных ролей шаг 6 – аутентификация пользователя настройка управления учетными записями back4app использует класс пользователя parse для аутентификации в вашем приложении на golang обрабатывайте регистрацию и вход пользователя, отправляя запросы на соответствующие конечные точки back4app это может включать регистрация пользователя post запрос с именем пользователя, электронной почтой и паролем вход пользователя проверка учетных данных и управление токенами сессии интегрируйте эти конечные точки в ваш сервер на golang, чтобы обеспечить безопасность ваших операций crud шаг 7 – развертывание вашего приложения на golang 7 1 подготовка вашего производственного сборки скомпилируйте ваш код на golang в каталоге вашего проекта выполните go build o crud app проверьте бинарный файл убедитесь, что исполняемый файл ( crud app ) работает без ошибок 7 2 организация файлов вашего проекта структура вашего проекта может выглядеть следующим образом basic crud app golang/ ├── main go ├── handlers go ├── models go ├── go mod └── readme md 7 3 контейнеризация с помощью docker если вы предпочитаете контейнеризацию, включите dockerfile как \# use an official golang image to build the app from golang 1 18 alpine as builder \# set the working directory workdir /app \# copy go mod and go sum files copy go mod go sum / \# download dependencies run go mod download \# copy the source code copy \# build the application run go build o crud app \# use a minimal image to run the app from alpine\ latest workdir /root/ copy from=builder /app/crud app expose 8080 cmd \[" /crud app"] 7 4 развертывание вашего приложения разверните на вашей предпочтительной платформе выберите vps, облачного провайдера или услуги развертывания back4app, загрузите ваш бинарный файл или контейнер docker мониторинг развертывания проверьте логи и убедитесь, что ваши api конечные точки доступны тестирование приложения получите доступ к url вашего сервера, чтобы подтвердить, что все конечные точки crud работают как задумано шаг 8 – заключение и следующие шаги отличная работа! вы успешно создали базовое crud приложение с использованием golang и back4app вы настроили проект под названием basic crud app golang , разработали коллекции для элементов и пользователей, и подключили ваш бэкенд на golang к back4app через rest api следующие шаги улучшите ваш api добавьте больше конечных точек для детального просмотра элементов, возможностей поиска или обновлений в реальном времени реализуйте дополнительную безопасность изучите продвинутые методы аутентификации и дополнительно защитите ваши конечные точки изучите дополнительные ресурсы обратитесь к документации back4app https //www back4app com/docs и к документации golang https //golang org/doc/ для более глубокого понимания следуя этому руководству, вы теперь имеете основу для создания надежных, масштабируемых crud приложений с golang, интегрированных без проблем с back4app удачного кодирования!