Quickstarters
CRUD Samples
How to Create a CRUD Application with Kotlin?
27 мин
обзор в этом руководстве вы узнаете, как разработать простое crud (создание, чтение, обновление, удаление) приложение с использованием kotlin мы будем использовать back4app в качестве нашего серверного решения, что упрощает управление данными этот гид иллюстрирует основные компоненты системы crud, включая настройку проекта back4app, проектирование гибкой схемы данных и выполнение операций crud с приложением на kotlin мы начинаем с настройки проекта back4app под названием basic crud app kotlin , который предлагает масштабируемую среду вы создадите модели данных либо вручную, либо с помощью ai агента back4app затем вы воспользуетесь интерфейсом администратора back4app — удобным инструментом перетаскивания — для легкого управления вашими данными наконец, вы интегрируете ваше приложение на kotlin с back4app, используя parse java sdk (или api вызовы при необходимости), обеспечивая при этом безопасное управление доступом к концу этого руководства вы создадите готовое к производству приложение на kotlin, способное выполнять стандартные операции crud, с безопасной аутентификацией пользователей и эффективным управлением данными основные идеи научитесь строить приложение crud на основе kotlin с надежным сервером поймите, как спроектировать масштабируемый сервер и подключить его к приложению на kotlin освойте использование интуитивно понятного интерфейса администратора back4app для упрощенных задач crud познакомьтесь с контейнеризацией вашего приложения на kotlin с помощью docker для упрощения процесса развертывания предварительные требования перед началом убедитесь, что у вас есть активная учетная запись back4app с настроенным новым проектом нужна помощь? смотрите начало работы с back4app https //www back4app com/docs/get started/new parse app среда разработки kotlin используйте ide, такую как intellij idea, и убедитесь, что у вас установлены kotlin и jdk 11 (или более поздняя версия) базовые знания kotlin, объектно ориентированного программирования и rest api при необходимости обратитесь к документации по kotlin https //kotlinlang org/docs/home html шаг 1 – настройка проекта создание нового проекта back4app войдите в свою учетную запись back4app нажмите кнопку “новое приложение” на вашей панели управления введите имя проекта basic crud app kotlin и завершите шаги настройки создать новый проект после создания проекта он появится на вашей панели управления, создавая основу для вашей конфигурации бэкенда шаг 2 – создание схемы данных определение ваших структур данных для этого crud приложения вы определите несколько коллекций в вашем проекте back4app ниже приведены образцы классов и полей, необходимых для стандартных операций crud 1\ коллекция предметов поле тип данных цель ид идентификатор объекта уникальный идентификатор, сгенерированный системой название строка название предмета описание строка краткое резюме, описывающее предмет создано дата время создания записи обновлено дата метка времени для последнего изменения 2\ коллекция пользователей поле тип данных цель ид идентификатор объекта автоматически сгенерированный уникальный идентификатор имя пользователя строка уникальное имя пользователя для каждого пользователя электронная почта строка отличный адрес электронной почты хешпароля строка надежно зашифрованный пользовательский пароль создано дата время создания аккаунта обновлено дата метка времени для изменений в учетной записи вы можете вручную добавить эти коллекции и поля непосредственно через панель управления back4app создать новый класс вы можете определить поля, выбрав тип данных, назвав поле, назначив значения по умолчанию и отметив обязательные поля создать колонку использование ai агента back4app для генерации схемы ai агент back4app упрощает настройку схемы, автоматически генерируя модель данных на основе вашего описания этот эффективный инструмент ускоряет инициализацию проекта и гарантирует, что ваша схема поддерживает все функции crud как использовать ai агента найдите ai агента войдите в свою панель управления back4app и найдите ai агента в настройках проекта опишите свою схему данных предоставьте подсказку, описывающую необходимые коллекции и их соответствующие поля просмотрите и подтвердите проверьте предложенную схему и подтвердите ее, чтобы внести изменения пример подсказки create the following collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated) \ title string \ description string \ createdat date (auto generated) \ updatedat date (auto updated) 2\) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ passwordhash string \ createdat date (auto generated) \ updatedat date (auto updated) эта функция на основе ии минимизирует ручную настройку и оптимизирует вашу модель данных для операций crud шаг 3 – включение интерфейса администратора и управление операциями crud обзор интерфейса администратора интерфейс администратора back4app — это решение без кода, которое упрощает управление данными на сервере его интуитивно понятный дизайн позволяет легко создавать, просматривать, изменять и удалять записи активация интерфейса администратора перейдите в меню “дополнительно” на вашей панели управления back4app выберите “интерфейс администратора” и затем нажмите на “включить интерфейс администратора ” настройте свои учетные данные администратора , создав начальную учетную запись администратора это также устанавливает роли (например, b4aadminuser ) и системные коллекции включить приложение администратора после активации войдите в интерфейс администратора, чтобы управлять данными вашего приложения панель управления приложения администратора использование интерфейса администратора для действий crud в этом интерфейсе вы можете вставить записи используйте опцию “добавить запись” в коллекции (например, элементы), чтобы ввести новые данные просмотреть и изменить записи нажмите на запись, чтобы просмотреть или обновить ее поля удалить записи удалите записи, которые больше не нужны этот удобный интерфейс значительно упрощает управление данными шаг 4 – подключение вашего приложения на kotlin к back4app после настройки вашего бэкенда следующим этапом является связывание вашего приложения на kotlin с back4app важно отметить, что хотя мы используем parse java sdk, бесшовная совместимость kotlin с java позволяет вам интегрировать его без каких либо проблем вариант a использование parse sdk для kotlin (через java) включите зависимость parse sdk если вы используете gradle, добавьте следующее в ваш build gradle kts dependencies { implementation("com parse\ parse sdk 1 18 0") } инициализируйте parse в вашем kotlin приложении создайте файл конфигурации (например, parseconfig kt ) // parseconfig kt import com parse parse object parseconfig { fun initialize() { parse initialize( parse configuration builder("your application id") clientkey("your kotlin key") server("https //parseapi back4app com") build() ) } } реализуйте методы crud на kotlin например, создайте сервис для управления элементами // itemsservice kt import com parse parseexception import com parse parseobject import com parse parsequery object itemsservice { fun getitems() list\<parseobject>? { return try { parsequery getquery\<parseobject>("items") find() } catch (e parseexception) { println("ошибка при получении элементов ${'$'}{e message}") null } } fun createitem(title string, description string) { val item = parseobject("items") item put("title", title) item put("description", description) try { item save() println("элемент успешно создан ") } catch (e parseexception) { println("не удалось создать элемент ${'$'}{e message}") } } fun updateitem(objectid string, newtitle string, newdescription string) { val query = parsequery getquery\<parseobject>("items") try { val item = query get(objectid) item put("title", newtitle) item put("description", newdescription) item save() println("элемент успешно обновлён ") } catch (e parseexception) { println("ошибка обновления ${'$'}{e message}") } } fun deleteitem(objectid string) { val query = parsequery getquery\<parseobject>("items") try { val item = query get(objectid) item delete() println("элемент успешно удалён ") } catch (e parseexception) { println("ошибка удаления ${'$'}{e message}") } } } вариант b использование rest или graphql api если вы предпочитаете не использовать parse sdk, вы можете выполнять операции crud через rest вызовы например, чтобы получить элементы с помощью rest import java io bufferedreader import java io inputstreamreader import java net httpurlconnection import java net url object restclient { fun fetchitems() { try { val url = url("https //parseapi back4app com/classes/items") val connection = url openconnection() as httpurlconnection connection requestmethod = "get" connection setrequestproperty("x parse application id", "your application id") connection setrequestproperty("x parse rest api key", "your rest api key") bufferedreader(inputstreamreader(connection inputstream)) use { reader > val response = reader readtext() println("response $response") } } catch (e exception) { println("error fetching items ${'$'}{e message}") } } } интегрируйте эти api вызовы в ваши классы kotlin по мере необходимости шаг 5 – укрепление безопасности вашего бэкенда списки контроля доступа (acl) обеспечьте безопасность ваших данных, настроив acl для ваших объектов например, чтобы создать элемент, доступный только его владельцу import com parse parseacl import com parse parseexception import com parse parseobject import com parse parseuser fun createprivateitem(title string, description string, owner parseuser) { val item = parseobject("items") item put("title", title) item put("description", description) val acl = parseacl() acl setreadaccess(owner, true) acl setwriteaccess(owner, true) acl setpublicreadaccess(false) acl setpublicwriteaccess(false) item acl = acl try { item save() println("private item created successfully ") } catch (e parseexception) { println("error saving private item ${'$'}{e message}") } } разрешения на уровне класса (clp) настройте clp через панель управления back4app, чтобы обеспечить соблюдение стандартных политик доступа, гарантируя, что только аутентифицированные пользователи взаимодействуют с чувствительными коллекциями шаг 6 – реализация аутентификации пользователей настройка управления пользователями back4app использует встроенную коллекцию пользователей parse для аутентификации в вашем приложении на kotlin вы можете обрабатывать регистрацию и вход пользователей следующим образом import com parse parseexception import com parse parseuser object authservice { fun signup(username string, password string, email string) { val user = parseuser() user username = username user setpassword(password) user email = email try { user signup() println("registration successful!") } catch (e parseexception) { println("sign up error ${'$'}{e message}") } } fun login(username string, password string) { try { val user = parseuser login(username, password) println("logged in as ${'$'}{user username}") } catch (e parseexception) { println("login failed ${'$'}{e message}") } } } эта структура может быть расширена для управления сессиями, сброса паролей и дополнительных механизмов аутентификации шаг 7 – заключение и будущие улучшения поздравляем! вы успешно создали приложение crud на основе kotlin, интегрированное с back4app в этом руководстве вы настроили проект под названием basic crud app kotlin , определили коллекции данных для элементов и пользователей и управляли своими данными через интерфейс администратора back4app кроме того, вы подключили свое приложение на kotlin через parse sdk (или api вызовы) и реализовали надежные практики безопасности следующие шаги расширьте приложение интегрируйте дополнительные функции, такие как расширенные возможности поиска, детализированные представления элементов или обновления в реальном времени улучшите функциональность бэкенда рассмотрите возможность изучения облачных функций, интеграции сторонних api или расширенных контролей доступа на основе ролей углубите свои знания посетите документацию back4app https //www back4app com/docs для получения дополнительной информации и продвинутых учебников счастливого кодирования и удачи с вашим приложением crud на kotlin!