Quickstarters
Feature Overview
Comment créer un backend pour Swift ?
45 min
introduction dans ce tutoriel, vous apprendrez à construire un backend complet pour une application swift en utilisant back4app 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, les requêtes en temps réel (live queries), et plus encore—pour créer un backend sécurisé, évolutif et robuste qui communique sans problème avec votre application cliente basée sur swift en tirant parti de la configuration rapide et de l'environnement intuitif de back4app, vous réduirez considérablement le temps et les efforts nécessaires 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 cruciales, 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 ce service backend fondamental en une application prête pour la production ou à incorporer facilement une logique personnalisée et des api tierces selon vos besoins vous verrez comment travailler avec une plateforme baas peut transformer le développement backend en une expérience plus fluide, surtout lors de la création d'un backend rapide ou de toute autre application backend commençons! 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 swift vous pouvez utiliser xcode https //developer apple com/xcode/ comme votre ide pour créer des applications ios ou macos en utilisant swift assurez vous d'avoir une version stable récente de xcode installée sur votre machine familiarité avec le langage de programmation swift si vous êtes nouveau dans swift, consultez la documentation swift https //swift org/documentation/ officielle ou un tutoriel pour débutants avant de commencer sdk parse swift si vous utilisez cocoapods, ajoutez pod 'parseswiftog' à votre podfile ou si vous utilisez swift package manager, ajoutez package(url "https //github com/netreconlab/parse swift git", from "5 0 0") à vos dépendances lisez en plus dans les docs parse swift https //docs parseplatform org/parse swift/guide/ assurez vous d'avoir tous ces prérequis en place avant de commencer avoir votre projet back4app configuré et votre environnement swift local prêt vous aidera à suivre plus facilement étape 1 – créer un nouveau projet sur back4app et se connecter la première étape pour construire votre backend swift sur back4app est de créer un nouveau projet ce projet est la base de toutes les configurations backend discutées dans ce tutoriel swift peut se connecter sans problème à votre nouveau backend en utilisant le sdk parse swift voyons comment créer un nouveau projet connectez vous à votre compte back4app cliquez sur le bouton “nouvelle application” dans votre tableau de bord back4app nommez votre application (par exemple, “swift backend tutorial”) après la création, vous verrez la nouvelle application listée dans votre tableau de bord c'est ici que vous configurerez votre base de données, vos fonctions cloud et d'autres paramètres cruciaux pour votre application backend connectez le sdk parse swift back4app est alimenté par la plateforme parse, qui fournit la base de votre base de données, des mises à jour en temps réel, l'authentification, et plus encore votre application swift peut se connecter à back4app en installant et en initialisant le sdk parse swift récupérez vos clés parse dans votre tableau de bord back4app, allez dans les “paramètres de l'application” ou “sécurité & clés” de votre application pour trouver votre id d'application et clé client vous verrez également votre url du serveur parse (souvent https //parseapi back4app com ) installez le sdk parse swift gestionnaire de paquets swift (recommandé) dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] cocoapods pod 'parseswiftog' initialisez parse dans votre application vous pouvez faire cela dans le point d'entrée principal de votre projet swift (par exemple, appdelegate swift ou la structure swiftui @main par exemple import swiftui import parseswift @main struct myapp app { init() { // replace placeholders with your back4app credentials parseswift initialize( applicationid "your application id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } var body some scene { windowgroup { contentview() } } } avec cette configuration, votre client swift peut maintenant envoyer des requêtes sécurisées à back4app vous avez établi une connexion robuste qui simplifie les opérations de données sans nécessiter d'appels rest ou graphql manuels (bien que vous puissiez toujours les utiliser si vous le souhaitez) étape 2 – configuration de la base de données dans cette étape, vous allez configurer votre base de données backend sur back4app et voir comment gérer les données depuis votre code swift back4app utilise le modèle de données parse, vous permettant de stocker des objets dans des structures semblables à des classes swift peut interagir facilement avec ces classes via le sdk parse swift création d'un modèle de données naviguez vers la section “base de données” dans votre tableau de bord back4app créez une nouvelle classe (par exemple, “todo”) ajoutez des colonnes pour les données dont vous avez besoin, telles que “title” (string) et “iscompleted” (boolean) vous pouvez également laisser le sdk parse swift créer ces colonnes automatiquement la première fois que vous enregistrez un objet dans tous les cas, votre schéma doit correspondre aux données que vous stockez afin que votre application puisse les gérer sans problème créer un modèle de données en utilisant l'agent ia back4app fournit un agent ia qui peut vous aider à concevoir votre modèle de données ouvrez l'agent ia depuis le tableau de bord ou le menu de votre application décrivez votre modèle de données en langage naturel par exemple “veuillez créer un nouveau projet swift avec un schéma de classe todo ” laissez l'agent ia créer le schéma pour vous automatiquement lire et écrire des données sdk parse swift en utilisant le sdk parse swift, vous pouvez créer une structure conforme à parseobject pour représenter vos données par exemple, si vous avez une classe todo import parseswift struct todo parseobject { // parseobject protocol properties var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom properties var title string? var iscompleted bool? } créez un objet todo et enregistrez le var newtodo = todo() newtodo title = "buy groceries" newtodo iscompleted = false task { do { let saved = try await newtodo save() print("saved ", saved) } catch { print("error saving todo ", error) } } interroger tous les éléments todo task { do { let todos = try await todo query() find() print("todos ", todos) } catch { print("error fetching ", error) } } lecture et écriture de données api rest si vous préférez les requêtes http standard, vous pouvez utiliser l'api rest par exemple, pour créer un nouveau todo 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" "walk the dog", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo lecture et écriture de données api graphql graphql est également pris en charge voici un exemple de mutation pour créer un todo mutation { createtodo(input { fields { title "finish homework" iscompleted false } }) { todo { objectid title iscompleted } } } travailler avec des requêtes en direct si votre application swift a besoin de mises à jour en temps réel, back4app prend en charge les requêtes en direct pour ios activer les requêtes en direct dans les paramètres du serveur de votre application connecter en spécifiant parse livequeryserverurl dans votre application parse configuration serverurl = url(string "https //parseapi back4app com")! parse configuration livequeryserverurl = url(string "wss\ //your subdomain b4a io")! s'abonner aux mises à jour en direct let subscription = todo query() subscribecallback { subscriptionstate in switch subscriptionstate { case subscribed(let querysubscription) print("subscribed to todo changes!") default break } } maintenant, chaque fois qu'un todo est créé, mis à jour ou supprimé, vous recevrez des mises à jour en temps réel cela est particulièrement utile pour les fonctionnalités collaboratives ou sensibles au temps dans le développement de votre backend swift étape 3 – application de la sécurité avec les acl et les clp qu'est ce que les acl et les clp ? back4app utilise les listes de contrôle d'accès (acl) et les permissions au niveau de la classe (clp) pour sécuriser vos données les acl vous permettent de définir des permissions par objet, tandis que les clp définissent des règles d'accès par défaut pour une classe entière permissions au niveau de la classe dans le tableau de bord back4app allez à base de données et sélectionnez une classe (par exemple, “todo”) ouvrez les permissions au niveau de la classe configurez les restrictions sur la lecture, l'écriture ou l'accès public listes de contrôle d'accès (acl) lors de la création ou de la mise à jour d'un parseobject en swift, vous pouvez définir un acl par exemple var acl = parseacl() // only let the current user read and write acl setreadaccess(userid "current user id", value true) acl setwriteaccess(userid "current user id", value true) var todo = todo() todo acl = acl cela garantit que seul l'utilisateur spécifié peut lire ou modifier cet objet la combinaison des acl et des clp forme un modèle de sécurité robuste et stratifié pour les données de votre application étape 4 – écriture de fonctions cloud code pourquoi cloud code ? le cloud code vous permet d'exécuter une logique swift côté serveur (ou javascript si vous utilisez le style original de cloud code de parse) sans exposer de secrets au client c'est parfait pour les validations, les déclencheurs, les tâches planifiées, et plus encore exemple de fonction voici un exemple basé sur javascript, mais vous pouvez également travailler en typescript ou appeler depuis swift dans votre cloud code dossier back4app, créez main js parse cloud define("gettaskscount", async (request) => { const query = new parse query("todo") const count = await query count({ usemasterkey true }) return count }) parse cloud beforesave("todo", async (request) => { const todo = request object if (!todo get("title")) { throw "cannot save a todo without a title " } }) vous voudrez peut être installer des modules npm en les incluant dans votre package json fichier, puis en les appelant dans main js une fois déployé, vous pouvez invoquer ces fonctions depuis votre code swift en utilisant callfunction déploiement déployez votre cloud code via b4a deploy vous pouvez également déployer via le tableau de bord back4app en allant à cloud code > functions collez votre code dans l'éditeur en ligne et cliquez sur déployer appel depuis swift task { do { let result = try await parsecloud callfunction("gettaskscount", with \[string any]\()) print("count ", result) } catch { print("error calling cloud function ", error) } } étape 5 – configuration de l'authentification activation de l'authentification des utilisateurs dans le tableau de bord , vous verrez une classe par défaut user pour les comptes utilisateurs activez tout fournisseur d'authentification supplémentaire (apple, facebook, google, etc ) dans les paramètres d'authentification de votre application si nécessaire inscription et connexion (swift) struct user parseuser { var objectid string? var username string? var email string? var password string? var emailverified bool? var createdat date? var updatedat date? var acl parseacl? var originaldata data? } // sign up task { do { var newuser = user() newuser username = "alice" newuser password = "p\@ssword" let signedup = try await newuser signup() print("user signed up ", signedup) } catch { print("error signing up ", error) } } // log in task { do { let user = try await user login(username "alice", password "p\@ssword") print("logged in user ", user) } catch { print("error logging in ", error) } } connexion sociale back4app prend en charge la connexion oauth avec google, apple et facebook configurez ces fournisseurs sur votre page de paramètres d'authentification , et utilisez le code d'intégration parse swift pertinent dans votre application swift (par exemple, parsefacebookutils ou parseappleutils ) pour gérer les flux d'authentification pour plus de détails, consultez la documentation sur la connexion sociale https //www back4app com/docs/platform/sign in with apple étape 6 – gestion du stockage de fichiers configuration du stockage de fichiers vous pouvez stocker des images, des vidéos ou tout fichier dans back4app en swift, vous avez parsefile let imagedata = data(/ your image bytes /) let parsefile = parsefile(name "photo jpg", data imagedata) task { do { let savedfile = try await parsefile save() print("file saved ", savedfile url ?? "no url") } catch { print("error uploading file ", error) } } ensuite, vous pouvez attacher ce fichier à un parseobject et l'enregistrer récupérez l'url du fichier pour l'afficher ou le télécharger ailleurs considérations de sécurité pour restreindre l'accès aux fichiers, vous pouvez utiliser la configuration des fichiers de parse server https //www back4app com/docs/platform/file storage par exemple, vous pourriez autoriser uniquement les utilisateurs authentifiés à télécharger des fichiers ou spécifier des autorisations de lecture/écriture dans votre code swift étape 7 – vérification de l'email et réinitialisation du mot de passe pourquoi des emails de vérification et de réinitialisation? valider l'email d'un utilisateur garantit une boîte aux lettres réelle et active la réinitialisation du mot de passe aide vos utilisateurs à retrouver en toute sécurité l'accès à leur compte s'ils oublient leurs identifiants configuration dans back4app allez à paramètres de l'email et activez vérification de l'email modifiez vos modèles d'email pour les flux de vérification et de réinitialisation déclenchement d'une réinitialisation de mot de passe depuis swift task { do { try await user passwordreset(email "alice\@example com") print("password reset email sent!") } catch { print("error requesting password reset ", error) } } étape 8 – planification des tâches avec les cloud jobs cloud jobs vous pouvez planifier des tâches côté serveur sur back4app par exemple, nettoyer les anciennes données ou envoyer des rapports hebdomadaires définissez un travail dans votre cloud code et planifiez le via le tableau de bord back4app parse cloud job("cleanupoldtodos", async (request) => { const now = new date() // example logic remove todos older than 30 days // use master key for privileged operations }) ensuite, dans les paramètres du serveur de back4app > tâches en arrière plan , vous pouvez le planifier pour qu'il s'exécute quotidiennement ou à tout intervalle étape 9 – intégration des webhooks qu'est ce que les webhooks ? les webhooks permettent à votre application de poster automatiquement des données vers des services externes chaque fois que certains événements se produisent c'est parfait pour s'intégrer avec slack, stripe ou d'autres api tierces configuration dans votre tableau de bord back4app, allez à plus > webhooks ajoutez un point de terminaison webhook (par exemple, https //example com/webhook ) choisissez des déclencheurs (par exemple, création d'objet dans “todo”) pour une logique personnalisée, vous pouvez également émettre des requêtes vers des url externes dans les déclencheurs de cloud code étape 10 – explorer le panneau d'administration back4app qu'est ce que le panneau d'administration ? le back4app admin app est une interface point and click pour le personnel non technique ou de support il fournit une interface graphique simple pour effectuer des opérations crud sur vos données—idéal pour gérer des données en dehors de votre environnement de développement activation de l'application admin allez au tableau de bord de l'application > plus > application admin activez l'application admin et choisissez un sous domaine créez un utilisateur admin une fois activée, toute personne disposant des identifiants appropriés peut visualiser et modifier vos données à partir d'une interface web conviviale—aucun code requis conclusion en suivant ce tutoriel complet, vous avez appris comment construire un backend pour swift en utilisant back4app plus précisément, vous avez créé un backend sécurisé pour votre application swift configuré une base de données avec des schémas de classe et des relations de données travaillé avec des requêtes en temps réel (live queries) pour des mises à jour immédiates mis en place une sécurité robuste avec des acl et des clp utilisé cloud code pour exécuter une logique personnalisée côté serveur implémenté l'authentification des utilisateurs avec vérification et réinitialisation de mot de passe géré les téléchargements de fichiers de manière sécurisée planifié des tâches automatisées avec cloud jobs appris sur les webhooks pour intégrer des api externes exploré le panneau d'administration pour la gestion directe des données vous avez maintenant un service backend fonctionnel et évolutif pour votre application swift—un service qui peut être facilement étendu pour gérer des fonctionnalités plus complexes, se connecter à des services tiers ou s'adapter à un trafic utilisateur plus important vous avez également vu de première main comment la combinaison des fonctionnalités baas de back4app et de la syntaxe moderne de swift peut accélérer le développement backend prochaines étapes construire une application swift prête pour la production en développant votre ui/ux intégrer des fonctionnalités avancées comme une authentification spécialisée (basée sur les rôles, sso), ou une logique cloud code supplémentaire pour des règles spécifiques au domaine consulter la documentation officielle de back4app pour des plongées plus profondes dans les journaux, l'analyse ou la sécurité avancée explorer d'autres tutoriels sur le chat en temps réel, les tableaux de bord iot ou les applications basées sur la localisation combinez les avec des api externes pour résoudre des défis du monde réel c'est ainsi que l'on construit un backend pour swift en utilisant back4app ! bon codage !