Quick Start
Build your first diagram in six steps
Avvio rapido
Costruisci il tuo primo diagramma di architettura convalidato in sei passaggi. Ogni passaggio introduce un nuovo concetto Datro. Alla fine avrai un diagramma completo, stilizzato e controllato dai vincoli, pronto per essere esportato come SVG.
Segui l'editor live: incolla ogni snippet e fai clic su Convalida.
Passaggio 1: scrivi i primi nodi e bordi
Ogni file .dtro inizia con un'intestazione magica. Successivamente, dichiara nodi (entità) e bordi (relazioni). Incolla questo nell'editor:
#!DATRO 1.0
node frontend { type: web label: "React App" }
node backend { type: service label: "NestJS API" }
node db { type: database label: "PostgreSQL" }
edge frontend -> backend { kind: http }
edge backend -> db { kind: query }È richiesta l'intestazione magica
La riga #!DATRO 1.0 sulla riga 1 è obbligatoria. Il parser restituisce E100 se manca.
Passaggio 2: aggiungi `attrs` per metadati più ricchi
Il blocco attrs contiene metadati di valori-chiave arbitrari. I valori possono essere stringhe, numeri, valori booleani o matrici. Gli attributi comuni sono tech, owner, deprecated e sla.
node backend {
type: service
label: "NestJS API"
attrs {
tech: "nestjs"
owner: "platform-team"
}
}Gli attributi passano all'IR JSON e vengono visualizzati come descrizioni comandi nell'SVG renderizzato, utili per i metadati di guardia e SLA.
Passaggio 3: aggiungi metadati edge
I bordi hanno un tipo (tipo di relazione semantica), un'etichetta opzionale, un peso (traffico relativo) e un flag asincrono. I bordi asincroni vengono visualizzati come linee tratteggiate.
edge backend -> stripe {
kind: http
label: "charge API"
async: false
}| Field | Type | Required | Default | Description |
|---|---|---|---|---|
kind | EdgeKind "http""grpc""query""publish""subscribe""read""write""deploys""monitors""depends""…21 total" | Yes | unknown | Tipo di relazione semantica |
label | string | No | — | Breve testo visualizzato sulla linea del bordo |
weight | number | No | 1.0 | Peso relativo del traffico: i bordi più pesanti rendono più spessi |
async | boolean | No | false | Quando è vero, il bordo viene visualizzato come tratteggiato (modello "spara e dimentica") |
Passaggio 4: raggruppa i nodi in cluster
Utilizza un blocco group per i nodi correlati al cluster. I gruppi vengono visualizzati come riquadri di sottografo etichettati nell'SVG. Un nodo può appartenere a un solo gruppo.
group data_tier {
label: "Data Layer"
members: [db, redis_cache]
}
node redis_cache { type: cache label: "Redis" }
edge backend -> redis_cache { kind: read label: "session" }Gruppi vs. nodo.gruppo
Puoi anche assegnare un gruppo direttamente sul nodo con group: data_tier. Entrambi gli stili sono validi; l'elenco members del blocco group ha la precedenza.
Passaggio 5: aggiungi un vincolo architettonico
I vincoli sono regole architettoniche controllate dalla macchina. Il validatore li valuta rispetto all'IR e restituisce errori E501 quando una regola viene violata.
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not connect to external services"
severity: error
}La regola database !-> external significa: nessun nodo di tipo database può avere un arco diretto verso qualsiasi nodo di tipo external. Ciò blocca le chiamate dirette accidentali DB → API di terze parti.
Passaggio 6: aggiungi suggerimenti di layout e un tema
Controlla come è organizzato il diagramma con un blocco layout e definisci una tavolozza di colori con un blocco theme. Il controllo di accessibilità si attiva W602 se un colore scende al di sotto del contrasto WCAG AA.
layout { direction: LR algo: dagre node_sep: 60 rank_sep: 120 }
theme {
palette {
service: "#D0E8FF"
database: "#FFE8C0"
web: "#E8D0FF"
cache: "#C0FFE8"
background: "#FFFFFF"
}
accessibility { min_contrast: AA }
}Il contrasto WCAG è automatico
L'esportatore DOT seleziona automaticamente il colore del carattere bianco o nero per il riempimento di ciascun nodo utilizzando la formula di luminanza relativa WCAG 2.1: non è necessaria alcuna configurazione.
Prossimi passi
- Leggere il Language Reference per la sintassi completa di ogni tipo di blocco.
- Utilizzare CLI Reference per convalidare, formattare ed esportare dalla riga di comando.
- Scopri come embed diagrams in Markdown documenti con il plug-in Commento o Markdown-it.
Il tuo diagramma è pronto per il rendering: fai clic su Render → SVG nella barra degli strumenti dell'editor.