Как создать бэкенд для Xamarin?
В этом учебном пособии вы узнаете, как создать бэкенд для ваших Xamarin мобильных приложений, используя мощные функции Back4App.
Мы будем полагаться на REST API, GraphQL, и другие варианты веб-API вместо использования специализированного SDK. Этот подход позволяет вашему мобильному клиенту оставаться легким и гибким, позволяя вам подключаться к вашим данным через простые HTTP-запросы.
Мы рассмотрим создание моделей базы данных, применение безопасности, обработку аутентификации и выполнение операций с файлами.
Следуя этим шагам, вы увидите, как быстро и безопасно создать бэкенд для xamarin.
Вы также изучите планирование автоматизированных задач и интеграцию webhooks для расширения функциональности вашего Xamarin приложения, чтобы вы могли сосредоточиться на кодировании вашего пользовательского интерфейса, а не на управлении конфигурациями сервера.
После завершения этого руководства у вас будет многоразовый шаблон для создания мобильных приложений, которые используют Back4App в качестве своего бэкенда.
Вы также поймете, как применять Списки управления доступом (ACL), писать Облачный код (если необходимо) и включать сложные рабочие процессы, такие как Живые запросы или Облачные задания в ваше окончательное решение.
Чтобы получить максимальную пользу от этого учебника, убедитесь, что у вас есть:
- Среда разработки Xamarin (Visual Studio или Visual Studio для Mac) Документация по установке Xamarin
- Базовые знания C# и Xamarin (включая то, как делать веб-API запросы из публичного класса в C#).
С этими предварительными условиями вы будете готовы следовать инструкциям и подключить ваш проект Xamarin к Back4App.
- Создайте проект Back4App в вашей панели управления Back4App. Это основа для вашего бэкенда.
- Назовите ваш проект (например, “Xamarin-Backend-Tutorial”).
- Найдите ваши ключи приложения в разделе “Безопасность и ключи” вашего приложения. Вы увидите REST, GraphQL или другие ключи, которые вы можете использовать при отправке запросов с вашего мобильного клиента.
- Настройте ваш проект Xamarin для выполнения HTTP-запросов. Вместо Parse SDK вы будете использовать либо HttpClient, либо любую сетевую библиотеку по вашему выбору, чтобы вызывать REST или GraphQL конечные точки вашего приложения Back4App.
Например, вы можете хранить ваш Идентификатор приложения и Ключ REST API в безопасном месте или в файле констант:
При вызове веб-API, всегда включайте эти учетные данные в заголовки вашего запроса. Это гарантирует, что ваши запросы направляются к правильному приложению с необходимой авторизацией.
Используйте панель управления Back4App, чтобы определить ваши классы или позвольте им создаваться динамически при первом запросе. Например, если вы хотите класс Todo, вы можете создать его в разделе База данных или на лету через REST API вызовы:
Back4App предоставляет AI-агента, который может генерировать полные структуры классов:
- Откройте AI-агента, в вашем проекте Back4App.
- Опишите вашу модель (например, “Пожалуйста, создайте новый класс с именем ‘Todo’ с полями title и isCompleted.”).
- Подтвердите, чтобы автоматически сгенерировать схему.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
В вашем Xamarin проекте вы можете написать public class (например, RestClient) который обрабатывает все запросы к Back4App:
Для запросов GraphQL вы можете отправлять запросы к конечной точке GraphQL Back4App:
Аналогично, из Xamarin вы можете отправить JSON-объект с вашей строкой GraphQL на https://parseapi.back4app.com/graphql.
Хотя вы используете веб-API вызовы, а не Parse SDK, вы все равно можете включить живые запросы, если хотите получать обновления данных в реальном времени. Вы будете использовать специализированные соединения (WebSockets) для подписки на изменения классов. Включите живые запросы в настройках сервера вашего приложения Server Settings в Back4App, затем используйте совместимую клиентскую библиотеку в Xamarin, если она доступна. В качестве альтернативы вы можете создать собственное решение на основе WebSocket или полагаться на опросы, если поддержка в реальном времени не является обязательной для вашего приложения.
Безопасность Back4App включает в себя Разрешения на уровне класса (CLP) и Списки контроля доступа (ACL). CLP определяют, какие пользователи или роли могут читать/записывать в целый класс. ACL добавляют безопасность на уровне объектов. Скомбинируйте их, чтобы убедиться, что только авторизованные пользователи могут манипулировать вашими данными.
- Откройте раздел База данных, на Back4App.
- Выберите ваш класс (например, Todo).
- Перейдите к разрешениям на уровне класса, чтобы установить правила чтения/записи. Вы можете разрешить только аутентифицированным пользователям читать или записывать. Это гарантирует, что ваш мобильный клиент должен войти в систему перед чтением данных.
Облачный код позволяет вам выполнять пользовательскую серверную логику. Вы можете создавать бизнес-правила, валидации или триггеры, которые срабатывают при изменении данных. Это снижает риск подделки, так как логика выполняется вне мобильного клиента.
Ниже приведен упрощенный пример облачной функции в файле main.js :
Для развертывания вы можете использовать Back4App CLI или раздел облачного кода на вашей панели управления. После развертывания вы можете вызывать ваши функции из Xamarin через REST:
Если вам нужны дополнительные библиотеки, установите их через npm в папке вашего проекта Cloud Code. После этого require их в вашем main.js. Этот подход полезен для вызова сторонних API с серверной стороны.
В Back4App класс _User управляет учетными данными пользователей. В разделе App Settings, вы можете включить аутентификацию пользователей, проверку электронной почты и настройки сброса пароля.
Из вашего проекта Xamarin вы можете написать методы C# для обработки регистрации и входа:
Затем вы можете хранить токены сессии на стороне клиента для будущих запросов.
Чтобы интегрировать социальные входы (например, Google, Facebook), обратитесь к документации по социальному входу Back4App. У каждого провайдера есть свой собственный OAuth-поток, который вы можете обрабатывать из вашего мобильного клиента. Затем передайте возвращенные токены в Back4App.
Файлы можно загружать, отправляя POST-запрос с данными файла в теле. Например, чтобы сохранить изображение из вашего приложения Xamarin, прочитайте изображение в массив байтов, а затем отправьте:
Чтобы обеспечить безопасность загрузки файлов, перейдите в Настройки сервера Back4App и настройте Разрешения на файлы. Например, вы можете разрешить загрузку только аутентифицированным пользователям.
Подтверждение электронной почты гарантирует, что пользователи владеют электронной почтой, с которой они зарегистрировались. Ссылки для сброса пароля позволяют им восстановить доступ, если они забудут свои пароли.
- Включите проверку электронной почты в разделе Настройки электронной почты.
- Отредактируйте шаблон сброса пароля и установите адрес “Отправителя”.
- Вы также можете настроить содержание электронной почты в соответствии с вашим брендом.
После включения, если пользователь регистрируется с электронной почтой, он получит ссылку для подтверждения. Запросы на сброс пароля отправляются на тот же базовый API с электронной почтой пользователя для инициирования письма со сбросом.
Облачные задания позволяют вам планировать рутинные задачи, такие как очистка старых данных или отправка ежедневных сводок по электронной почте, все это с платформы Back4App.
Разверните облачный код, затем запланируйте задание в разделе Настройки приложения > Настройки сервера > Фоновая работа.
- Определите вебхук на Back4App, перейдя в Дополнительно > Вебхуки и нажав “Добавить вебхук.”
- Укажите конечную точку, такую как https://your-service.com/webhook-endpoint.
- Выберите триггеры, такие как “Новый объект в классе Todo.”
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Webhook'и могут уведомлять сторонние сервисы, так что ваше приложение Xamarin может оставаться легковесным, в то время как внешние системы обрабатывают дополнительную логику или уведомления.
Приложение Back4App Admin App является удобным способом выполнения операций CRUD без написания запросов. Включите его в App Dashboard > More > Admin App. Создайте администратора, выберите поддомен и войдите в систему.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
Это приложение администратора идеально подходит для не технических членов команды, которым необходимо управлять данными, но которым не следует иметь прямой доступ к базе данных.
Вы только что увидели, как создать бэкенд для Xamarin, используя Back4App API. Вы создали безопасные классы, добавили CLP'и и ACL'и, обработали аутентификацию и изучили загрузку файлов, планирование задач и интеграцию с внешними сервисами. Этот подход обеспечивает, чтобы ваши мобильные приложения оставались быстрыми и гибкими, используя мощь хостируемой базы данных и облачной среды.
- Расширьте ваше приложение Xamarin для обработки более сложной логики, кэширования или расширенных ролей и разрешений.
- Погрузитесь в расширенные функции, такие как push-уведомления, или интегрируйте данные в реальном времени с помощью Live Queries, если вам нужны совместные обновления.
- Посетите официальную документацию Back4App для более глубоких руководств по безопасности, производительности и отладке.
- Создавайте решения для реального мира путем смешивания сторонних API (платежные шлюзы, аналитика, социальные сети) с вашим бэкендом Back4App. Эта комбинация может улучшить функциональность вашего мобильного клиента и поддерживать ваш код в порядке.
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)