Quickstarters
Feature Overview
How to Build a Backend for Play Framework?
37 min
introduzione in questo tutorial, imparerai come costruire un backend completo per il play framework utilizzando back4app esploreremo le funzionalità essenziali per i backend server, inclusi impostazioni di configurazione, gestione del database, cloud code functions, api rest e graphql, autenticazione degli utenti, archiviazione dei file e query in tempo reale vedrai come back4app semplifica il processo di configurazione, scalabilità e manutenzione di un backend per applicazioni web, permettendoti di concentrarti sul tuo codice del play framework imparando a costruire un backend per il play framework con back4app, ridurrai il tempo di sviluppo e minimizzerai i mal di testa legati alle operazioni di sviluppo aggiungerai anche funzionalità robuste come il login sociale, la pianificazione di attività (cloud jobs) e i webhook una volta completato, potrai estendere il sistema in una soluzione di livello produzione, integrando funzionalità più avanzate secondo necessità quando avrai finito, avrai un solido schema per creare la tua prossima applicazione web scalabile e sicura con il play framework sarai pronto per approfondire miglioramenti delle prestazioni, integrazioni o ottimizzazioni in modalità sviluppo per gestire le richieste del mondo reale 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 lavoro play framework assicurati di avere java 8+ https //adoptium net/ installato installa sbt https //www scala sbt org/download html o usa sbt attraverso il tuo ide https //www playframework com/documentation/latest/ide conoscenze di base del play framework fai riferimento alla documentazione di play https //www playframework com/documentation/latest se hai bisogno di rinfrescare le basi familiarità con rest o graphql questo ti aiuterà a interagire con back4app, specialmente se decidi di non usare o se non puoi usare direttamente il parse sdk assicurati di avere questi requisiti in atto prima di iniziare avere il tuo progetto back4app configurato e il tuo ambiente play framework pronto ti aiuterà a seguire senza intoppi passo 1 – creare un nuovo progetto su back4app e connettersi perché hai bisogno di un nuovo progetto back4app un nuovo progetto back4app è la spina dorsale del tuo backend perché gestisce i dati della tua applicazione, l'autenticazione e la logica cloud che tu stia costruendo un piccolo prototipo o un'applicazione web su larga scala, è facile connettere la tua app play framework a un nuovo progetto back4app creare un progetto back4app accedi al tuo account back4app clicca su “nuova app” nel tuo dashboard di back4app dai un nome alla tua app , ad esempio, “play framework backend” una volta creata, la tua nuova app apparirà nel dashboard collegarsi a back4app back4app sfrutta parse server se la tua app play framework prevede di interagire con back4app tramite il parse java sdk, puoi aggiungerlo al tuo build sbt se necessario in caso contrario, puoi utilizzare gli endpoint rest o graphql recupera le tue chiavi parse nel tuo dashboard di back4app, apri impostazioni app o sicurezza e chiavi per trovare il tuo id applicazione , chiave api rest , chiave javascript (se utilizzi chiamate front end), o chiave client , più il url server (di solito https //parseapi back4app com ) utilizzando il java/parse sdk (opzionale) se desideri un'integrazione diretta lato server utilizzando il parse sdk, aggiungi una dipendenza nel tuo build sbt librarydependencies += "com parse" % "parse" % "1 0 40" // example version quindi, nel tuo codice play framework, puoi inizializzare parse object parseconfig { def init() unit = { parse initialize(new parse configuration builder("your app id") server("https //parseapi back4app com") clientkey("your client key") build() ) } } potresti posizionarlo nel tuo global scala o chiamarlo da un punto di inizializzazione appropriato questo ti prepara per un'interazione diretta con il tuo progetto back4app se preferisci, utilizza gli endpoint rest o graphql per le operazioni sui dati, specialmente se desideri un maggiore controllo sulle tue richieste http o se stai costruendo microservizi passo 2 – configurazione del database il servizio di archiviazione dati di back4app supporta un'ampia gamma di tipi di dati e la creazione di schemi dinamici questo ti consente di archiviare i dati della tua app play con il minimo sforzo creare un modello di dati apri la sezione “database” nel tuo dashboard di back4app crea una nuova classe (ad esempio, “todo”) e aggiungi colonne (ad esempio, title come string, iscompleted come boolean) salva per finalizzare il tuo schema di database creare un modello di dati con l'agente ai se desideri definire rapidamente la tua struttura dati apri l'agente ai nel tuo dashboard dell'app descrivi il tuo modello di dati desiderato in linguaggio semplice (ad esempio, “crea un modello todo semplice ”) l'agente genera automaticamente lo schema per te lettura e scrittura di dati utilizzando il parse sdk (opzionale) se hai scelto di includere il parse java sdk nella tua app play framework, puoi salvare e interrogare i dati import com parse {parseobject, parsequery} object todoservice { def createtodo(title string, iscompleted boolean) either\[throwable, parseobject] = { try { val todo = new parseobject("todo") todo put("title", title) todo put("iscompleted", iscompleted) right(todo save()) } catch { case e throwable => left(e) } } def fetchtodos() either\[throwable, java util list\[parseobject]] = { try { val query = parsequery getquery("todo") val results = query find() right(results) } catch { case e throwable => left(e) } } } lettura e scrittura di dati utilizzando rest puoi inviare richieste http dai tuoi controller o servizi play framework 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 lettura e scrittura di dati utilizzando graphql back4app fornisce anche un'api graphql mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } questo è utile se stai costruendo microservizi o desideri un'api flessibile per i tuoi client front end lavorare con le query live se la tua applicazione web ha bisogno di dati in tempo reale, abilita le query live abilita le query live nel dashboard di back4app sotto impostazioni del server configura la tua sottoscrizione nel codice se utilizzi il parse sdk o codice personalizzato, assicurati di configurare il livequeryserverurl iscriviti ai cambiamenti per classi come “todo ” passo 3 – applicare la sicurezza con acl e clp panoramica su acl e clp back4app fornisce liste di controllo degli accessi (acl) per la sicurezza a livello di oggetto e permessi a livello di classe (clp) per restrizioni ampie questo aiuta a mantenere i tuoi backend server sicuri e garantisce che si verifichino solo operazioni autorizzate permessi a livello di classe nella sezione database del tuo dashboard di back4app seleziona una classe (ad esempio, “todo”) apri i clp per limitare la lettura/scrittura a utenti autenticati, ruoli o al pubblico configura come necessario (ad esempio, “richiede autenticazione” per qualsiasi scrittura) acl le acl proteggono oggetti individuali ad esempio, puoi assicurarti che solo un particolare utente possa leggere o scrivere un record specifico se stai utilizzando il parse sdk dal codice scala import com parse {parseacl, parseuser, parseobject} def createprivatetodo(title string, owner parseuser) parseobject = { val todo = new parseobject("todo") todo put("title", title) val acl = new parseacl(owner) acl setpublicreadaccess(false) acl setpublicwriteaccess(false) todo setacl(acl) todo save() todo } passo 4 – scrivere funzioni di cloud code perché cloud code il cloud code ti consente di eseguire logica personalizzata sui server di back4app, aggiungendo regole aziendali o validazioni prima o dopo le transazioni di dati non dovrai gestire la tua propria fornitura di server o riavvii in modalità sviluppo per implementare tali funzioni funzione di esempio // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); puoi chiamare questo dalla tua app play tramite rest, graphql, o se utilizzi il parse sdk, direttamente distribuzione usa il back4app cli o la dashboard installa il cli (esempio linux/macos) configura la chiave dell'account distribuisci oppure distribuisci tramite la dashboard incollando la tua funzione in cloud code > funzioni e premendo “distribuisci” utilizzo dei moduli npm il cloud code supporta i moduli npm ad esempio, se hai bisogno di un client http come axios const axios = require('axios'); parse cloud define('fetchdata', async (req) => { const response = await axios get(req params url); return response data; }); passo 5 – configurazione dell'autenticazione abilitazione dell'autenticazione utente back4app utilizza la parse user classe per la registrazione, il login e la gestione delle sessioni nelle tue impostazioni di configurazione , assicurati di abilitare “verifica email” e “reimposta password” se desiderato codice di esempio (parse sdk) import com parse {parseuser} object authservice { def signupuser(username string, password string, email string) either\[throwable, parseuser] = { try { val user = new parseuser() user setusername(username) user setpassword(password) user setemail(email) right(user signup()) } catch { case e throwable => left(e) } } def loginuser(username string, password string) either\[throwable, parseuser] = { try { right(parseuser login(username, password)) } catch { case e throwable => left(e) } } } accesso sociale se hai bisogno di accessi sociali (google, apple o facebook), configurali nel tuo dashboard di back4app parse fornisce metodi di utilità oppure puoi fare affidamento sui flussi oauth standard, a seconda delle tue esigenze e del tuo approccio passaggio 6 – gestione dello storage dei file back4app memorizza i file tramite parse file da play framework, puoi caricare con rest o parse sdk // example with parse sdk import com parse {parsefile, parseobject} import java nio file {files, paths} def uploadimage(filepath string) either\[throwable, string] = { try { val data = files readallbytes(paths get(filepath)) val parsefile = new parsefile("myimage jpg", data) parsefile save() right(parsefile geturl) } catch { case e throwable => left(e) } } considerazioni sulla sicurezza puoi configurare le autorizzazioni per il caricamento dei file (abilitare per pubblico, anonimo o autenticato) nelle impostazioni del server back4app passaggio 7 – verifica email e ripristino password naviga verso le impostazioni email nel dashboard di back4app abilita la verifica email e imposta i modelli email per il ripristino delle password nella tua app play, puoi chiamare curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"email" "user\@example com"}' \\ https //parseapi back4app com/requestpasswordreset questo attiverà back4app per inviare istruzioni per il ripristino della password all'email dell'utente passo 8 – pianificazione dei compiti con cloud jobs cloud jobs se hai bisogno di un compito di avvio per lavori in background (ad esempio, pulizia dei dati o generazione di report), puoi pianificare cloud jobs su back4app // 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); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); pianificazione distribuisci il tuo cloud code in impostazioni app > impostazioni server > lavori in background , pianifica il lavoro per essere eseguito quotidianamente, settimanalmente o come richiesto passo 9 – integrazione dei webhook se desideri notificare servizi esterni ogni volta che i dati cambiano, imposta webhook in back4app vai su altro > webhooks nel tuo dashboard di back4app aggiungi webhook con un endpoint (ad es , slack o stripe) scegli i trigger, come “nuovo record nella classe todo ” puoi anche creare webhook nei trigger del cloud code, effettuando richieste http dirette a servizi di terze parti passo 10 – esplorare il pannello di amministrazione di back4app il back4app admin app è un'interfaccia user friendly per la gestione di dati e registrazioni gli utenti non tecnici possono gestire operazioni crud senza immergersi nel codice abilitare l'admin app vai a app dashboard > altro > admin app abilitalo e crea un utente admin scegli un sottodominio per un accesso conveniente una volta effettuato l'accesso, puoi gestire le voci di dati senza dover interagire con i dashboard di livello inferiore o gli strumenti cli conclusione congratulazioni! hai imparato come costruire un backend per play framework utilizzando i servizi di back4app durante questo tutorial, hai creato un backend sicuro per un'app play framework su back4app impostato un database , inclusi design dello schema, relazioni e query in tempo reale applicato acl e clp per un accesso sicuro ai dati scritto cloud code per logica personalizzata, trigger e integrazioni esterne configurato l'autenticazione degli utenti , login social e reset delle password gestito caricamenti di file e aggiunto sicurezza opzionale per i file pianificato attività in background con cloud jobs integrato con servizi di terze parti tramite webhooks esplorato il pannello di amministrazione di back4app per una gestione dei dati semplificata con questi strumenti a disposizione, puoi ottimizzare la modalità di sviluppo, scalare secondo necessità e costruire applicazioni web robuste sul play framework abbraccia ulteriori integrazioni, ottimizzazione delle prestazioni e misure di sicurezza avanzate per portare i tuoi backend server al livello successivo prossimi passi migliora la tua configurazione di produzione con strumenti di caching, logging o monitoraggio esplora la sicurezza avanzata con controlli di accesso basati sui ruoli o configurazioni zero trust integra i gateway di pagamento o altre api di terze parti per il commercio o l'analisi dai un'occhiata alla documentazione ufficiale di back4app per approfondimenti sulle prestazioni e la risoluzione dei problemi rivedi altri tutorial su app di chat in tempo reale, soluzioni iot o servizi basati sulla posizione — molti dei quali si basano sulle tecniche in questa guida