Quickstarters
Feature Overview
Comment construire un backend pour MacOS ?
46 min
introduction dans ce tutoriel, vous apprendrez comment construire un backend pour macos en utilisant back4app et le sdk parse swift nous allons passer en revue l'intégration des fonctionnalités essentielles de back4app—telles que la gestion de base de données, les fonctions cloud code, les api rest et graphql, l'authentification des utilisateurs et les requêtes en temps réel (live queries)—pour créer un backend sécurisé, évolutif et robuste qui communique sans effort avec votre application macos vous verrez également comment la configuration rapide de back4app et son environnement intuitif peuvent réduire considérablement le temps et les efforts par rapport à la configuration manuelle des serveurs et des bases de données en cours de route, vous acquerrez une expérience pratique avec des fonctionnalités clés, y compris des fonctionnalités de sécurité avancées, la planification de tâches avec cloud jobs, et la configuration de webhooks pour des intégrations externes à la fin de ce tutoriel, vous serez bien préparé à améliorer cette configuration de base en une application macos prête pour la production, ou à intégrer facilement une logique personnalisée et des api tierces selon vos besoins maîtriser cette approche vous permettra de rationaliser vos flux de travail et d'apprendre à construire un backend pour macos rapidement et efficacement prérequis pour compléter ce tutoriel, vous aurez besoin de un compte back4app et un nouveau projet back4app commencer avec back4app https //www back4app com/docs/get started/new parse app si vous n'avez pas de compte, vous pouvez en créer un gratuitement suivez le guide ci dessus pour préparer votre projet un environnement de développement macos (xcode) vous pouvez installer xcode depuis le mac app store https //apps apple com/us/app/xcode/id497799835 swift package manager ou cocoapods pour installer le sdk parse swift documentation parse swift https //github com/netreconlab/parse swift connaissances de base en swift et développement d'applications macos documentation officielle d'apple https //developer apple com/documentation/swift une familiarité avec swiftui ou appkit est utile assurez vous d'avoir tous ces prérequis en place avant de commencer avoir votre projet back4app configuré et votre environnement de développement macos local prêt vous aidera à suivre plus facilement étape 1 – configuration du projet back4app créer un nouveau projet la première étape pour construire votre backend macos sur back4app consiste à créer un nouveau projet si vous ne l'avez pas encore fait, suivez ces étapes connectez vous à votre compte back4app cliquez sur le bouton “nouvelle application” dans votre tableau de bord back4app donnez un nom à votre application (par exemple, “macos backend tutorial”) une fois le projet créé, vous le verrez listé dans votre tableau de bord back4app ce projet sera la base de toutes les configurations backend discutées dans ce tutoriel connecter le sdk parse swift back4app s'appuie sur la plateforme parse pour gérer vos données, fournir des fonctionnalités en temps réel, gérer l'authentification des utilisateurs, et plus encore connecter votre application macos à back4app implique d'installer le sdk parse swift et de l'initialiser avec les identifiants de votre tableau de bord back4app récupérez vos clés parse dans votre tableau de bord back4app, accédez à la section “paramètres de l'application” ou “sécurité & clés” de votre application pour trouver votre id d'application et clé client (ou clientkey ) vous trouverez également l' url du serveur parse (souvent au format https //parseapi back4app com ) installez le sdk parse swift dans votre projet macos si vous utilisez swift package manager dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] si vous utilisez cocoapods , ajoutez ceci à votre podfile pod 'parseswiftog' initialisez parse dans votre application macos (par exemple, dans appdelegate swift si vous utilisez appkit, ou dans une struct swiftui @main si vous construisez une application swiftui) import parseswift import swiftui @main struct mymacosapp app { init() { task { do { try await parseswift initialize( applicationid "your application id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\(error)") } } } var body some scene { windowgroup { contentview() } } } en complétant cette étape, vous avez établi une connexion sécurisée entre votre interface macos (ui) et le backend back4app toutes les requêtes et transactions de données sont acheminées de manière sécurisée via ce sdk, réduisant la complexité des appels rest ou graphql manuels (bien que vous puissiez toujours les utiliser si nécessaire) étape 2 – configuration de la base de données sauvegarde et requête de données avec votre projet back4app configuré et le sdk parse swift intégré dans votre application macos, vous pouvez maintenant commencer à sauvegarder et à récupérer des données la manière la plus simple de créer un objet est de définir une structure conforme à parseobject et ensuite d'appeler save() struct todo parseobject { // parseobject required properties var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom properties var title string? var iscompleted bool? } func createtodoitem(title string, iscompleted bool) async { var todo = todo() todo title = title todo iscompleted = iscompleted do { try await todo save() print("todo saved successfully ") } catch { print("error saving todo \\(error)") } } func fetchtodos() async > \[todo] { let query = todo query() do { return try await query find() } catch { print("error fetching todos \\(error)") return \[] } } alternativement, vous pouvez utiliser l'api rest ou graphql de back4app curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo back4app fournit également une interface graphql mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } ces options diverses vous permettent d'intégrer les opérations de données de la manière qui convient le mieux à votre processus de développement, que ce soit par le biais du sdk parse swift, rest ou graphql conception de schéma et types de données par défaut, parse permet la création de schéma à la volée , mais vous pouvez également définir vos classes et types de données dans le tableau de bord back4app pour plus de contrôle accédez à la section “base de données” dans votre tableau de bord back4app créez une nouvelle classe (par exemple, “todo”) et ajoutez des colonnes pertinentes, telles que titre (string) et iscompleted (boolean) back4app prend en charge divers types de données string , number , boolean , object , date , file , pointer , array , relation , geopoint , et polygon vous pouvez choisir le type approprié pour chaque champ, ou laisser parse créer automatiquement ces colonnes lorsque vous enregistrez pour la première fois un objet depuis votre application macos back4app propose un agent ia qui peut vous aider à concevoir votre modèle de données ouvrez l'agent ia depuis votre tableau de bord d'application ou dans le menu décrivez votre modèle de données dans un langage simple (par exemple, “veuillez créer une nouvelle application todo sur back4app avec un schéma de classe complet ”) laissez l'agent ia créer le schéma pour vous données relationnelles si vous avez des données relationnelles—disons, un category objet qui pointe vers plusieurs todo éléments—vous pouvez utiliser pointers ou relations dans parse swift struct category parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom fields var name string? } struct todo parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var title string? var category pointer\<category>? } func createtaskforcategory(categoryobjectid string, title string) async { let pointer = pointer\<category>(objectid categoryobjectid) var todo = todo() todo title = title todo category = pointer do { try await todo save() print("todo linked to category") } catch { print("error creating task with category relationship \\(error)") } } func fetchtodoswithcategory() async { let query = todo query() include("category") do { let todos = try await query find() print("fetched todo items with category \\(todos)") } catch { print("error fetching todos \\(error)") } } requêtes en direct pour des mises à jour en temps réel, back4app fournit des live queries en activant les requêtes en direct dans votre tableau de bord back4app, vous pouvez vous abonner aux changements dans une classe spécifique depuis votre application macos activer les requêtes en direct dans votre tableau de bord back4app sous les paramètres du serveur de votre application initialiser les requêtes en direct dans le code (le client de requête en direct swift est encore en évolution, mais vous pouvez utiliser des approches communautaires ou attendre les mises à jour officielles de parse swift) src/parseconfig swift // example (subject to support in parse swift) // live query’s subdomain // parseswift configuration livequeryserverurl = url(string "wss\ //your subdomain here b4a io")! une fois abonné, vous recevrez des notifications chaque fois qu'un nouveau todo est créé, mis à jour ou supprimé cela est particulièrement précieux pour les applications de bureau collaboratives ou hautement interactives où plusieurs utilisateurs ou processus doivent voir les dernières données instantanément étape 3 – appliquer la sécurité avec les acl et les clp mécanisme de sécurité back4app back4app prend la sécurité au sérieux en fournissant listes de contrôle d'accès (acls) et permissions au niveau de la classe (clps) ces fonctionnalités vous permettent de restreindre qui peut lire ou écrire des données sur une base par objet ou par classe, garantissant que seuls les utilisateurs autorisés peuvent modifier vos données listes de contrôle d'accès (acls) une acl est appliquée à des objets individuels pour déterminer quels utilisateurs, rôles ou le public peuvent effectuer des opérations de lecture/écriture par exemple, si votre application macos a un concept de “tâches privées” pour l'utilisateur actuellement connecté import parseswift func createprivatetodo(title string) async { guard let currentuser = user current else { return } var todo = todo() todo title = title // create an acl granting read/write access only to the owner var acl = parseacl() acl setreadaccess(currentuser, value true) acl setwriteaccess(currentuser, value true) todo acl = acl do { try await todo save() print("private todo saved") } catch { print("error saving private todo \\(error)") } } lorsque vous enregistrez l'objet, il a un acl qui empêche quiconque, sauf l'utilisateur spécifié, de le lire ou de le modifier permissions au niveau de la classe (clps) les clps régissent les permissions par défaut d'une classe entière, telles que si la classe est lisible ou modifiable publiquement, ou si seuls certains rôles peuvent y accéder allez à votre tableau de bord back4app , sélectionnez votre application et ouvrez la base de données section sélectionnez une classe (par exemple, “todo”) ouvrez les autorisations au niveau de la classe onglet configurez vos paramètres par défaut, tels que “nécessite une authentification” pour lire ou écrire, ou “aucun accès” pour le public étape 4 – écriture et déploiement des fonctions cloud le code cloud est une fonctionnalité de l'environnement parse server qui vous permet d'exécuter du code javascript personnalisé côté serveur, sans avoir besoin de gérer vos propres serveurs ou infrastructure en écrivant du code cloud, vous pouvez étendre votre backend back4app avec une logique métier supplémentaire, des validations, des déclencheurs et des intégrations qui s'exécutent de manière sécurisée et efficace sur le serveur parse comment ça fonctionne lorsque vous écrivez du code cloud, vous placez généralement vos fonctions javascript, déclencheurs et tous les modules npm requis dans un main js fichier vous déployez ensuite ce fichier dans votre projet back4app, et il s'exécute dans l'environnement du serveur parse cela vous permet de garder la logique sensible côté serveur cas d'utilisation typiques logique métier calculs ou transformations avant d'enregistrer des données validations de données assurez vous que certains champs répondent à des critères déclencheurs effectuer des actions lorsque les données changent intégrations connectez vous à des api externes (par exemple, paiements, notifications) exemple de fonction // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); déploiement via le cli back4app installer le cli curl https //raw\ githubusercontent com/back4app/parse cli/back4app/installer sh | sudo /bin/bash configurer votre clé de compte b4a configure accountkey déployer votre code cloud b4a deploy appeler votre fonction depuis macos en utilisant swift import parseswift func gettextlength(text string) async { do { let result = try await parsecloud callfunction("calculatetextlength", with \["text" text]) if let resultdict = result as? \[string any], let length = resultdict\["length"] as? int { print("text length \\(length)") } } catch { print("error calling cloud function \\(error)") } } vous pouvez également l'appeler via rest ou graphql, de la même manière que dans d'autres frameworks étape 5 – configuration de l'authentification des utilisateurs authentification des utilisateurs dans back4app back4app utilise la parseuser classe comme base pour l'authentification par défaut, parse gère le hachage des mots de passe, les jetons de session et le stockage sécurisé, donc vous n'avez pas à configurer manuellement des flux de sécurité complexes configuration de l'authentification des utilisateurs dans une application macos, vous pouvez créer un nouvel utilisateur avec struct user parseuser { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // default properties var username string? var email string? var emailverified bool? var password string? var authdata \[string \[string string]?]? } func signupuser(username string, password string, email string) async { var newuser = user() newuser username = username newuser password = password newuser email = email do { newuser = try await newuser signup() print("user signed up successfully!") } catch { print("error signing up user \\(error)") } } func loginuser(username string, password string) async { do { let user = try await user login(username username, password password) print("user logged in \\(user)") } catch { print("error logging in user \\(error)") } } via rest, une connexion pourrait ressembler à curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secret123' \\ https //parseapi back4app com/login gestion de session après une connexion réussie, parse crée un jeton de session vous pouvez accéder à l'utilisateur actuellement connecté if let currentuser = user current { print("currently logged in user \\(currentuser username ?? "no username")") } else { print("no user is logged in") } déconnexion do { try await user logout() } catch { print("error logging out \\(error)") } intégration de la connexion sociale vous pouvez intégrer des fournisseurs populaires comme google, apple ou facebook en configurant authdata les instructions détaillées varient, alors référez vous à documentation sur la connexion sociale https //www back4app com/docs/platform/sign in with apple vérification de l'email et réinitialisation du mot de passe pour activer la vérification par e mail et la réinitialisation du mot de passe accédez aux paramètres de messagerie dans votre tableau de bord back4app activez la vérification par e mail configurez l'adresse d'expédition , les modèles d'e mail et votre domaine personnalisé si désiré cela améliore la sécurité du compte en validant les e mails des utilisateurs et en fournissant une méthode de récupération de mot de passe étape 6 – gestion du stockage de fichiers téléchargement et récupération de fichiers parse inclut la parsefile classe pour gérer les téléchargements de fichiers, que back4app stocke en toute sécurité func uploadfile(data data) async > parsefile? { let file = parsefile(name "doc txt", data data) do { let savedfile = try await file save() print("file saved ", savedfile url ?? "no url") return savedfile } catch { print("error uploading file ", error) return nil } } attachez le à un objet struct photo parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var imagefile parsefile? } func createphotoobject(file parsefile) async { var photo = photo() photo imagefile = file do { try await photo save() print("photo object saved!") } catch { print("error saving photo ", error) } } sécurité des fichiers vous pouvez configurer la sécurité de téléchargement de fichiers dans les paramètres de votre serveur parse par exemple, contrôler quels utilisateurs peuvent télécharger ou supprimer des fichiers gardez à l'esprit que si vous partagez l'url du fichier, toute personne ayant cette url peut y accéder à moins que vous n'ayez défini des règles plus strictes côté serveur étape 7 – vérification par e mail et réinitialisation du mot de passe aperçu la vérification par e mail et les réinitialisations de mot de passe sont essentielles pour une gestion sécurisée des utilisateurs nous en avons déjà parlé dans étape 5 , mais pour rappel activez ces fonctionnalités dans le tableau de bord back4app (paramètres de l'e mail) configurez les modèles d'e mail « activer la vérification par e mail » et « réinitialisation du mot de passe » testez le flux depuis votre application macos étape 8 – planification des tâches avec les cloud jobs cloud jobs cloud jobs vous permet de planifier et d'exécuter des tâches de routine sur votre backend, comme l'envoi d'e mails périodiques ou le nettoyage des données par exemple // main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); déployez votre cloud code avec le nouveau travail allez au tableau de bord back4app > paramètres de l'application > paramètres du serveur > travaux en arrière plan planifiez le travail (par exemple, quotidiennement) étape 9 – intégration des webhooks les webhooks permettent à votre application back4app d'envoyer des requêtes http à un service externe chaque fois que certains événements se produisent c'est puissant pour s'intégrer à des systèmes tiers comme des passerelles de paiement, des outils de marketing par e mail ou des plateformes d'analyse naviguez vers la configuration des webhooks dans votre tableau de bord back4app > plus > webhooks configurez un point de terminaison (par exemple, https //your external service com/webhook endpoint ) configurez des déclencheurs pour spécifier quels événements dans vos classes back4app ou fonctions cloud code déclencheront le webhook par exemple, si vous souhaitez notifier slack chaque fois qu'un nouveau todo est créé créez une application slack qui accepte les webhooks entrants copiez l'url du webhook slack dans votre tableau de bord back4app, définissez le point de terminaison sur cette url slack pour l'événement "nouvel enregistrement dans la classe todo " étape 10 – explorer le panneau d'administration back4app le back4app admin app est une interface de gestion basée sur le web conçue pour les utilisateurs non techniques afin d'effectuer des opérations crud et de gérer des tâches de données courantes sans écrire de code elle fournit une centrée sur le modèle , conviviale interface qui rationalise l'administration de la base de données, la gestion des données personnalisées et les opérations de niveau entreprise activation de l'admin app activez le en allant à app dashboard > more > admin app et en cliquant sur “activer l'admin app ” créer un premier utilisateur administrateur , ce qui génère automatiquement un nouveau rôle ( b4aadminuser ) et des classes pertinentes dans le schéma de votre application choisissez un sous domaine pour accéder à l'interface administrateur et complétez la configuration connectez vous avec les identifiants administratifs que vous avez créés pour accéder à votre nouveau tableau de bord admin app une fois activée, l'application admin back4app facilite la visualisation, l'édition ou la suppression d'enregistrements de votre base de données, sans nécessiter l'utilisation directe du tableau de bord parse ou du code backend conclusion en suivant ce tutoriel complet, vous avez créé un backend sécurisé pour une application macos sur back4app configuré une base de données avec des schémas de classe, des types de données et des relations intégré des requêtes en temps réel (requêtes en direct) pour des mises à jour de données immédiates appliqué des mesures de sécurité en utilisant des acl et des clp pour protéger et gérer l'accès aux données implémenté des fonctions cloud code pour exécuter une logique métier personnalisée côté serveur mis en place une authentification utilisateur avec prise en charge de la vérification par e mail et des réinitialisations de mot de passe géré les téléchargements de fichiers et la récupération, avec des contrôles de sécurité des fichiers en option planifié des tâches cloud pour des tâches d'arrière plan automatisées utilisé des webhooks pour s'intégrer à des services externes exploré le panneau d'administration back4app pour la gestion des données avec un front end macos solide et un backend back4app robuste, vous êtes maintenant bien équipé pour développer des applications de bureau riches en fonctionnalités, évolutives et sécurisées continuez à explorer des fonctionnalités plus avancées, intégrez votre logique métier et exploitez la puissance de back4app pour vous faire gagner d'innombrables heures dans l'administration des serveurs et des bases de données prochaines étapes construire une application macos prête pour la production en étendant ce backend pour gérer des modèles de données plus complexes, des stratégies de mise en cache et des optimisations de performance intégrer des fonctionnalités avancées telles que des flux d'authentification spécialisés, un contrôle d'accès basé sur les rôles ou des api externes (comme des passerelles de paiement) consultez la documentation officielle de back4app pour des plongées plus profondes dans la sécurité avancée, le réglage des performances et l'analyse des journaux explorez d'autres tutoriels sur la communication en temps réel, les tableaux de bord iot ou les services basés sur la localisation combinez les techniques apprises ici avec des api tierces pour créer des applications complexes et réelles