Xata & Astro
Xata è una Piattaforma dati serverless che combina le funzionalità di un database relazionale, un motore di ricerca e un motore di analisi, e li rende utilizzabili attraverso una singola REST API.
Aggiunta di un database con Xata
Sezione intitolata Aggiunta di un database con XataPrerequisiti
Sezione intitolata Prerequisiti- Un account Xata con un database. (Puoi utilizzare il database di esempio dall’interfaccia utente.)
- Un Token di Accesso (
XATA_TOKEN_API
). - L’URL del tuo Database.
Dopo aver aggiornato e inizializzato la Xata CLI, avrai il tuo token per l’API nel file .env
e l’URL del database.
Alla fine della configurazione, dovresti avere:
XATA_API_KEY=chiave_hash
# Branch Xata che verrà utilizzato# se non esiste un branch xata con# lo stesso nome del tuo branch gitXATA_FALLBACK_BRANCH=main
E l’URL del database:
{ "databaseUrl": "https://il-tuo-url-del-database"}
Configurazione dell’ambiente
Sezione intitolata Configurazione dell’ambientePer avere IntelliSense e dei tipi per le tue variabili d’ambiente, modifica o crea il file env.d.ts
nella tua cartella src/
:
interface ImportMetaEnv { readonly XATA_API_KEY: string; readonly XATA_FALLBACK_BRANCH?: string;}
interface ImportMeta { readonly env: ImportMetaEnv;}
Per ulteriori informazioni sulle variabili d’ambiente e sui file .env
in Astro, leggi questa guida.
Utilizzando la Xata CLI per generare il codice di base e scegliendo l’opzione TypeScript, sarà generata un’istanza del SDK per te, con i tipi adattati allo schema del tuo database. Inoltre, @xata.io/client
sarà aggiunto al tuo package.json
.
Le tue variabili d’ambiente Xata e l’URL del database sono stati automaticamente acquisiti dall’istanza del SDK, quindi non è necessario alcun altro lavoro di configurazione.
Ora, il tuo progetto dovrebbe avere la seguente struttura:
Cartellasrc/
- xata.codegen.ts
- env.d.ts
- .env
- astro.config.mjs
- package.json
- .xatarc
Creazione delle tue query
Sezione intitolata Creazione delle tue queryPer ottenere i tuoi post, importa e utilizza getXataClient()
in un file .astro
. L’esempio seguente prende i primi 50 post dal Sample Blog Database di Xata.
---import { getXataClient } from "../xata.codegen";
const xata = getXataClient();const { records } = await xata.db.Posts.getPaginated({ pagination: { size: 50 }})---
<ul> {records.map(post) => ( <li>{post.title}</li> )}</ul>
È importante notare che l’SDK deve essere rigenerato ogni volta che lo schema viene modificato. Pertanto, evita di apportare modifiche ai file generati/dalla Xata CLI, perché una volta che lo schema viene aggiornato, le tue modifiche saranno sovrascritte.