Quickstarters
Feature Overview
Come costruire un backend per Swift?
44 min
introduzione in questo tutorial, imparerai come costruire un backend completo per un'applicazione swift utilizzando back4app esploreremo l'integrazione delle funzionalità essenziali di back4app—come la gestione del database, le funzioni cloud code, le api rest e graphql, l'autenticazione degli utenti, le query in tempo reale (live queries) e altro—per creare un backend sicuro, scalabile e robusto che comunica senza problemi con la tua app client basata su swift sfruttando la rapida configurazione e l'ambiente intuitivo di back4app, ridurrai drasticamente il tempo e lo sforzo richiesti rispetto alla configurazione manuale di server e database durante il percorso, acquisirai esperienza pratica con funzionalità cruciali, inclusi avanzati strumenti di sicurezza, pianificazione di attività con cloud jobs e configurazione di webhook per integrazioni esterne entro la fine di questo tutorial, sarai ben preparato per migliorare questo servizio backend fondamentale in un'applicazione pronta per la produzione o per incorporare facilmente logica personalizzata e api di terze parti secondo necessità vedrai come lavorare con una piattaforma baas può trasformare lo sviluppo backend in un'esperienza più snella, specialmente quando si crea un backend rapido o qualsiasi altra app backend iniziamo! requisiti per completare questo tutorial, avrai bisogno di un account back4app e un nuovo progetto back4app iniziare con back4app https //www back4app com/docs/get started/new parse app se non hai un account, puoi crearne uno gratuitamente segui la guida sopra per preparare il tuo progetto un ambiente di sviluppo swift puoi usare xcode https //developer apple com/xcode/ come ide per creare applicazioni ios o macos utilizzando swift assicurati di avere installata una versione stabile recente di xcode sul tuo computer familiarità con il linguaggio di programmazione swift se sei nuovo a swift, rivedi la documentazione di swift https //swift org/documentation/ ufficiale o un tutorial per principianti prima di iniziare parse swift sdk se stai usando cocoapods, aggiungi pod 'parseswiftog' al tuo podfile oppure, se stai usando swift package manager, aggiungi package(url "https //github com/netreconlab/parse swift git", from "5 0 0") alle tue dipendenze leggi di più nella documentazione di parse swift https //docs parseplatform org/parse swift/guide/ assicurati di avere tutti questi prerequisiti in atto prima di iniziare avere il tuo progetto back4app configurato e il tuo ambiente swift locale pronto ti aiuterà a seguire più facilmente passo 1 – creare un nuovo progetto su back4app e connettersi il primo passo per costruire il tuo backend swift su back4app è creare un nuovo progetto questo progetto è la base per tutte le configurazioni del backend discusse in questo tutorial swift può connettersi senza problemi al tuo nuovo backend utilizzando il parse swift sdk vediamo come crea un nuovo progetto accedi al tuo account back4app clicca sul pulsante “nuova app” nel tuo dashboard di back4app dai un nome alla tua app (ad esempio, “swift backend tutorial”) dopo la creazione, vedrai la nuova app elencata nel tuo dashboard qui configurerai il tuo database, le funzioni cloud e altre impostazioni cruciali per la tua app backend collegare il parse swift sdk back4app è alimentato dalla parse platform, che fornisce la base per il tuo database, aggiornamenti in tempo reale, autenticazione e altro ancora la tua applicazione swift può connettersi a back4app installando e inizializzando il parse swift sdk recupera le tue chiavi parse nel tuo dashboard di back4app, vai alle “impostazioni app” o “sicurezza e chiavi” della tua app per trovare il tuo id applicazione e chiave client vedrai anche il tuo url del server parse (spesso https //parseapi back4app com ) installa il parse swift sdk swift package manager (consigliato) dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] cocoapods pod 'parseswiftog' inizializza parse nella tua app puoi farlo nel punto di ingresso principale del tuo progetto swift (ad esempio, appdelegate swift o la struct swiftui @main ) ad esempio 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() } } } con questa configurazione, il tuo client swift può ora inviare richieste sicure a back4app hai stabilito una connessione robusta che semplifica le operazioni sui dati senza richiedere chiamate manuali rest o graphql (anche se puoi comunque usarle se lo desideri) passo 2 – configurazione del database in questo passo, configurerai il tuo database backend su back4app e vedrai come gestire i dati dal tuo codice swift back4app utilizza il modello di dati parse, permettendoti di memorizzare oggetti in strutture simili a classi swift può interagire facilmente con queste classi tramite il parse swift sdk creazione di un modello di dati naviga nella sezione “database” nel tuo dashboard di back4app crea una nuova classe (ad esempio, “todo”) aggiungi colonne per i dati di cui hai bisogno, come “title” (string) e “iscompleted” (boolean) puoi anche lasciare che il parse swift sdk crei automaticamente queste colonne la prima volta che salvi un oggetto in entrambi i casi, il tuo schema deve corrispondere ai dati che memorizzi affinché la tua app possa gestirli senza problemi creare un modello di dati utilizzando l'agente ai back4app fornisce un agente ai che può aiutarti a progettare il tuo modello di dati apri l'agente ai dal dashboard o dal menu della tua app descrivi il tuo modello di dati in linguaggio naturale ad esempio “per favore crea un nuovo progetto swift con uno schema di classe todo ” lascia che l'agente ai crei lo schema per te automaticamente lettura e scrittura dei dati parse swift sdk utilizzando il parse swift sdk, puoi creare una struct che conforma a parseobject per rappresentare i tuoi dati ad esempio, se hai una todo classe 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? } crea un oggetto todo e salva 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) } } interroga tutti gli elementi todo task { do { let todos = try await todo query() find() print("todos ", todos) } catch { print("error fetching ", error) } } lettura e scrittura dei dati rest api se preferisci richieste http standard, puoi utilizzare l'api rest ad esempio, per creare un nuovo 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 lettura e scrittura dei dati graphql api graphql è supportato anche ecco un esempio di mutazione per creare un todo mutation { createtodo(input { fields { title "finish homework" iscompleted false } }) { todo { objectid title iscompleted } } } lavorare con le query live se la tua app swift ha bisogno di aggiornamenti in tempo reale, back4app supporta le query live per ios abilita le query live nelle impostazioni del server della tua app collegati specificando parse livequeryserverurl nella tua app parse configuration serverurl = url(string "https //parseapi back4app com")! parse configuration livequeryserverurl = url(string "wss\ //your subdomain b4a io")! iscriviti agli aggiornamenti live let subscription = todo query() subscribecallback { subscriptionstate in switch subscriptionstate { case subscribed(let querysubscription) print("subscribed to todo changes!") default break } } ora, ogni volta che un todo viene creato, aggiornato o eliminato, riceverai aggiornamenti in tempo reale questo è particolarmente utile per funzionalità collaborative o sensibili al tempo nello sviluppo del tuo backend swift passo 3 – applicare la sicurezza con acl e clp cosa sono acl e clp? back4app utilizza liste di controllo degli accessi (acl) e permessi a livello di classe (clp) per proteggere i tuoi dati le acl ti permettono di definire permessi per ogni oggetto, mentre i clp impostano regole di accesso predefinite per un'intera classe permessi a livello di classe nel dashboard di back4app vai a database e seleziona una classe (ad esempio, “todo”) apri permessi a livello di classe configura restrizioni su lettura, scrittura o accesso pubblico liste di controllo degli accessi (acl) quando crei o aggiorni un parseobject in swift, puoi impostare un acl ad esempio 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 questo garantisce che solo l'utente specificato possa leggere o modificare quell'oggetto combinare acl e clp forma un modello di sicurezza robusto e stratificato per i dati della tua app passo 4 – scrivere funzioni di cloud code perché cloud code? il cloud code ti consente di eseguire logica swift lato server (o javascript se utilizzi lo stile originale del cloud code di parse) senza esporre segreti al client è perfetto per validazioni, trigger, attività programmate e altro esempio di funzione ecco un esempio basato su javascript, ma puoi anche lavorare in typescript o chiamare da swift nella tua cartella cloud code di back4app, crea 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 " } }) potresti voler installare i moduli npm includendoli nel tuo package json file, e poi chiamarli in main js una volta distribuiti, puoi invocare queste funzioni dal tuo codice swift usando callfunction distribuzione distribuisci il tuo cloud code tramite b4a deploy puoi anche distribuire tramite il dashboard di back4app andando su cloud code > funzioni incolla il tuo codice nell'editor online e clicca su distribuisci chiamata da swift task { do { let result = try await parsecloud callfunction("gettaskscount", with \[string any]\()) print("count ", result) } catch { print("error calling cloud function ", error) } } passo 5 – configurazione dell'autenticazione abilitare l'autenticazione dell'utente nel dashboard , vedrai una classe predefinita user per gli account utente attiva eventuali fornitori di autenticazione aggiuntivi (apple, facebook, google, ecc ) nella auth settings della tua app, se necessario registrazione e accesso (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) } } accesso sociale back4app supporta l'accesso oauth con google, apple e facebook configura questi fornitori nella tua pagina delle auth impostazioni e utilizza il codice di integrazione parse swift pertinente nella tua app swift (ad es , parsefacebookutils o parseappleutils ) per gestire i flussi di autenticazione per dettagli, consulta la documentazione sull'accesso sociale https //www back4app com/docs/platform/sign in with apple passo 6 – gestione dello storage dei file impostazione dello storage dei file puoi memorizzare immagini, video o qualsiasi file in back4app in swift, hai 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) } } poi puoi allegare questo file a un parseobject e salvarlo recupera l'url del file per visualizzarlo o scaricarlo altrove considerazioni sulla sicurezza per limitare l'accesso ai file, puoi utilizzare la configurazione dei file di parse server https //www back4app com/docs/platform/file storage ad esempio, potresti consentire solo agli utenti autenticati di caricare file o specificare permessi di lettura/scrittura nel tuo codice swift passo 7 – verifica email e reimpostazione password perché email di verifica e reimpostazione? la convalida dell'email di un utente garantisce una casella di posta reale e attiva la reimpostazione della password aiuta i tuoi utenti a recuperare in modo sicuro l'accesso all'account se dimenticano le credenziali configurazione in back4app vai a impostazioni email e abilita verifica email modifica i tuoi modelli di email sia per la verifica che per il ripristino attivare un ripristino della password da swift task { do { try await user passwordreset(email "alice\@example com") print("password reset email sent!") } catch { print("error requesting password reset ", error) } } passo 8 – pianificazione dei compiti con cloud jobs cloud jobs puoi pianificare compiti lato server su back4app ad esempio, pulire i dati obsoleti o inviare report settimanali definisci un lavoro nel tuo cloud code e pianificalo tramite la dashboard di 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 }) poi, nelle impostazioni server di back4app > lavori in background , puoi pianificarlo per essere eseguito quotidianamente o a qualsiasi intervallo passo 9 – integrazione dei webhook cosa sono i webhook? i webhook consentono alla tua app di inviare automaticamente dati a servizi esterni ogni volta che si verificano determinati eventi questo è perfetto per l'integrazione con slack, stripe o altre api di terze parti configurazione nel tuo dashboard di back4app, vai su altro > webhook aggiungi un endpoint webhook (ad es , https //example com/webhook ) scegli i trigger (ad es , creazione di un oggetto in “todo”) per logica personalizzata, puoi anche inviare richieste a url esterni nei trigger del cloud code passo 10 – esplorare il pannello di amministrazione di back4app cos'è il pannello di amministrazione? l' app di amministrazione di back4app è un'interfaccia point and click per personale non tecnico o di supporto fornisce una semplice gui per eseguire operazioni crud sui tuoi dati—ottima per gestire i dati al di fuori del tuo ambiente di sviluppo abilitare l'app di amministrazione vai al dashboard dell'app > altro > app di amministrazione abilita l'app di amministrazione e scegli un sottodominio crea un utente amministratore una volta attivata, chiunque abbia le credenziali appropriate può visualizzare e modificare i tuoi dati da un'interfaccia web user friendly—senza codice richiesto conclusione seguendo questo tutorial completo, hai imparato come costruire un backend per swift utilizzando back4app in particolare, hai creato un backend sicuro per la tua app swift configurato un database con schemi di classe e relazioni tra i dati lavorato con query in tempo reale (live queries) per aggiornamenti immediati impostato una sicurezza robusta con acl e clp utilizzato cloud code per eseguire logica personalizzata sul lato server implementato l'autenticazione degli utenti con verifica e reset della password gestito caricamenti di file in modo sicuro pianificato attività automatizzate con cloud jobs imparato a conoscere i webhook per integrare api esterne esplorato il pannello di amministrazione per la gestione diretta dei dati ora hai un servizio backend funzionale e scalabile per la tua applicazione swift—uno che può essere facilmente esteso per gestire funzionalità più complesse, connettersi a servizi di terze parti o adattarsi a un traffico utente più intenso hai anche visto di persona come la combinazione delle funzionalità baas di back4app e la sintassi moderna di swift possano accelerare lo sviluppo del backend prossimi passi costruisci un'app swift pronta per la produzione sviluppando la tua ui/ux integra funzionalità avanzate come autenticazione specializzata (basata su ruoli, sso) o logica cloud code aggiuntiva per regole specifiche del dominio controlla la documentazione ufficiale di back4app per approfondimenti su log, analisi o sicurezza avanzata esplora altri tutorial su chat in tempo reale, dashboard iot o app basate sulla posizione combina questi con api esterne per risolvere sfide del mondo reale ecco come costruire un backend per swift utilizzando back4app! buon coding!