Quickstarters
Feature Overview
Come costruire un backend per Deno?
34 min
introduzione in questo tutorial, imparerai come costruire un backend per deno utilizzando back4app esploreremo ogni passaggio per integrare le funzionalità chiave di back4app database, api rest, autenticazione degli utenti, archiviazione dei file e query in tempo reale, in un ambiente deno vedrai come comunicare con back4app attraverso endpoint rest e creare un'infrastruttura completa senza gestire server da solo quando utilizzi back4app, puoi evitare di configurare manualmente i server con deno, risparmiando tempo e fatica ti concentrerai sulla scrittura di codice più semplice, grazie alla libreria standard di deno e all'approccio moderno alla fine di questa guida su come costruire un backend per deno, avrai un percorso chiaro per integrare sicurezza avanzata, codice cloud e attività programmate nella tua applicazione deno una volta completato questo tutorial, sarai in grado di eseguire il server, gestire le api rest, integrare l'autenticazione degli utenti, memorizzare file e pianificare attività facilmente capirai anche come gestire i tuoi dati utilizzando l'approccio fetch di deno con l'api rest di back4app requisiti 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 usa il link sopra per preparare il tuo progetto installa deno puoi ottenere deno su https //deno land https //deno land installa deno sul tuo sistema operativo e confermalo con deno version familiarità con i concetti di base di deno come moduli, file system, deno run allow net , o come importare moduli dell'applicazione dalla libreria standard conoscenza di base delle api rest utilizzeremo chiamate fetch e il tipo di contenuto degli header per la gestione dei dati, quindi assicurati di conoscere i fondamenti di rest e json assicurati di avere questi requisiti prima di iniziare avere il tuo progetto back4app configurato e il tuo ambiente deno locale in esecuzione ti permetterà di seguire questo tutorial senza problemi passo 1 – creare un nuovo progetto su back4app e connettersi crea un nuovo progetto la base per il tuo backend deno è un progetto back4app se non ne hai ancora creato uno accedi al tuo account back4app clicca sul pulsante “nuova app” nel tuo dashboard di back4app dai un nome alla tua app (ad esempio, “deno backend tutorial”) una volta che il tuo progetto è pronto, apparirà nel tuo dashboard di back4app questo progetto è dove configurerai database, sicurezza e api collegati a back4app tramite rest poiché non abbiamo un sdk parse per deno, utilizzeremo gli endpoint api rest di back4app puoi trovare l’ id applicazione , l’ api key rest , e l’ url del server nella sezione impostazioni app o sicurezza e chiavi della tua app in questo tutorial, utilizzeremo fetch per inviare richieste da deno a back4app assicurati di includere la tua chiave api e il tipo di contenuto degli header in ogni chiamata passo 2 – configurazione del database in questo passaggio, creerai un modello di dati su back4app e interagirai con esso utilizzando le api rest da deno creazione di un modello di dati vai alla sezione “database” nel tuo dashboard di back4app clicca su “crea una nuova classe” e chiamala, ad esempio, “todo ” aggiungi colonne rilevanti (ad esempio, titolo (string), iscompleted (boolean)) puoi anche consentire a parse di creare automaticamente queste colonne quando i dati vengono salvati creare un modello di dati con l'agente ai l'agente ai di back4app può progettare il tuo schema per te apri l'agente ai nel tuo dashboard di back4app descrivi il tuo modello di dati (ad esempio, “crea una classe todo con un titolo, una descrizione e un campo iscompleted ”) consenti all'agente di generare automaticamente lo schema questo ti aiuta a gestire schemi più complessi rapidamente leggere e scrivere dati utilizzando l'api rest da deno, puoi eseguire il server chiamando gli endpoint rest con fetch ad esempio, per creare un todo // file called createtodo ts export async function createtodoitem(title string, iscompleted boolean) { const url = "https //parseapi back4app com/classes/todo"; const body = json stringify({ title, iscompleted }); const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body, }); if (!response ok) { throw new error(`error saving todo ${response statustext}`); } const result = await response json(); return result; } per recuperare i todos // file called fetchtodos ts export async function fetchtodos() { const url = "https //parseapi back4app com/classes/todo"; const response = await fetch(url, { method "get", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", }, }); if (!response ok) { throw new error(`error fetching todos ${response statustext}`); } const result = await response json(); return result; } puoi eseguire questi con deno run allow net createtodo ts lettura e scrittura dei dati utilizzando l'api graphql back4app fornisce anche un endpoint graphql https //parseapi back4app com/graphql // file called createtodographql ts export async function createtodographql(title string) { const mutation = ` mutation { createtodo(input { fields { title "${title}" iscompleted false } }) { todo { objectid title iscompleted } } } `; const response = await fetch("https //parseapi back4app com/graphql", { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body json stringify({ query mutation }), }); const result = await response json(); return result; } lavorare con le query live (opzionale) le query live ti aggiornano in tempo reale, ma deno non ha una libreria nativa per le parse livequery puoi comunque impostare la funzionalità di query live nel tuo dashboard di back4app per altri client o utilizzare un websocket in deno per iscriverti manualmente per ulteriori dettagli, consulta la documentazione delle query live https //www back4app com/docs/platform/live queries passo 3 – applicare la sicurezza con acl e clp panoramica le acl (liste di controllo degli accessi) e le clp (permessi a livello di classe) di back4app proteggono i tuoi dati usa le clp per impostare regole predefinite per un'intera classe poi usa le acl per restrizioni a livello di oggetto impostare i permessi a livello di classe apri il database nella tua dashboard di back4app seleziona una classe (ad esempio, “todo”) vai alle autorizzazioni a livello di classe abilita o disabilita l'accesso in lettura/scrittura per il pubblico o per gli utenti autenticati secondo necessità configurazione delle acl quando crei o aggiorni un oggetto tramite rest, puoi includere un attributo acl nel corpo della richiesta ad esempio const body = json stringify({ title "private task", acl { " " { "read" false, "write" false }, "role\ admins" { "read" true, "write" true }, } }); questo esempio consente solo al ruolo “admins” di leggere o scrivere l'accesso pubblico è disattivato passaggio 4 – scrivere funzioni cloud code perché cloud code cloud code è dove memorizzi la logica sicura lato server non gestisci i server da solo puoi aggiungere convalide o trigger per classi specifiche esempio di funzione cloud code puoi definire una funzione cloud (in javascript) e distribuirla nella tua app ad esempio, una funzione per controllare la lunghezza del testo potrebbe essere parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "text parameter is required"; } return { length text length }; }); distribuzione puoi distribuire il codice tramite il back4app cli https //www back4app com/docs/local development/parse cli o il pannello cloud code nel tuo dashboard di back4app npm su cloud code puoi importare librerie esterne con require() una volta distribuite, l'ambiente server le eseguirà questo è utile per compiti avanzati, ma ricorda che eseguirle da deno è separato dal tuo ambiente cloud code su back4app passaggio 5 – configurare l'autenticazione abilita l'autenticazione back4app utilizza la classe parse user per l'autenticazione mentre lavori con deno, puoi chiamare gli endpoint rest per gestire gli utenti registrati e accedi utilizzando rest async function signupuser(username string, password string, email string) { const url = "https //parseapi back4app com/users"; const body = json stringify({ username, password, email }); const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body, }); return await response json(); } async function loginuser(username string, password string) { const url = `https //parseapi back4app com/login?username=${username}\&password=${password}`; const response = await fetch(url, { method "get", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", }, }); return await response json(); } accesso sociale puoi configurare google, facebook, apple e altri fornitori su back4app poi, chiamerai gli endpoint dedicati con i token oauth vedi la documentazione di accesso sociale di back4app https //www back4app com/docs/platform/sign in with apple per dettagli passo 6 – gestione dello storage dei file carica e recupera file per caricare file da deno, usa una richiesta post a https //parseapi back4app com/files/\<filename> ad esempio async function uploadfile(filedata uint8array, filename string) { const url = `https //parseapi back4app com/files/${filename}`; const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "image/png", }, body filedata, }); return await response json(); } puoi quindi memorizzare l'url del file risultante nei tuoi oggetti di classe questo metodo è perfetto per memorizzare immagini o documenti mentre esegui il server in deno passo 7 – verifica email e ripristino password panoramica verificare le email garantisce un accesso legittimo il ripristino della password aiuta gli utenti a riacquistare l'accesso in modo sicuro configurazione della dashboard abilita la verifica email nel tuo dashboard di back4app sotto impostazioni email personalizza i tuoi modelli di verifica abilita il ripristino password e imposta il layout email preferito quando un utente si registra, riceve un link di verifica se hai attivato la verifica via email per il ripristino della password, chiama l'endpoint rest post /requestpasswordreset passo 8 – pianificazione dei compiti con i cloud jobs panoramica dei cloud jobs i cloud jobs vengono eseguiti periodicamente senza intervento umano ad esempio, puoi eliminare record obsoleti ogni giorno o inviare promemoria via email di routine 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\ valueof() 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 `; }); dopo aver distribuito questo lavoro, puoi programmarlo in impostazioni app > impostazioni server > lavori in background nel tuo dashboard di back4app passo 9 – integrazione dei webhook definizione un webhook è un callback http attivato quando si verificano eventi, come la creazione o l'aggiornamento di oggetti puoi integrarti con slack, stripe o qualsiasi servizio esterno configurazione apri “altro” > “webhooks” nel dashboard di back4app clicca “aggiungi webhook” e fornisci l'endpoint del tuo servizio di terze parti imposta quali trigger o classi desideri inviare richieste questo consente ai sistemi esterni di ricevere dati ogni volta che crei o modifichi oggetti in back4app passo 10 – esplorare il pannello di amministrazione di back4app introduzione al pannello di amministrazione i team non tecnici possono utilizzare questo pannello per gestire i dati visivamente semplifica le operazioni crud e le revisioni dei dati come abilitare vai al dashboard dell'app > altro > app di amministrazione e scegli “abilita app di amministrazione ” crea un utente amministratore per accedere imposta un sottodominio per la tua app di amministrazione puoi quindi accedere all'app di amministrazione per gestire i record in modo sicuro conclusione in questo tutorial, hai scoperto come costruire un backend per deno su back4app hai creato modelli di dati, gestito l'autenticazione degli utenti, appreso riguardo a acl e clp per la sicurezza, e programmato cloud jobs hai anche visto come integrare api esterne tramite webhook e come eseguire il server o le api rest con comandi deno run allow net questa configurazione ti permette di iniziare rapidamente senza dover configurare manualmente i file system o le complessità della libreria standard per l'architettura del server prossimi passi espandi la tua applicazione deno con endpoint aggiuntivi e logica avanzata utilizzando cloud code integra più servizi (ad es , gateway di pagamento, analisi) con i tuoi dati di back4app fai riferimento alla documentazione ufficiale di back4app per suggerimenti più approfonditi su sicurezza, prestazioni e analisi dei log sperimenta con funzionalità avanzate in tempo reale o con lo storage deno kv, collegando i dati tra il tuo runtime deno e l'ambiente robusto di back4app con le tue nuove conoscenze, puoi implementare con fiducia un backend deno sicuro, scalabile e ricco di funzionalità supportato da back4app