Com escriure un diagrama de seqüència mermaid

Un diagrama de seqüència mostra qui parla amb qui, i en quin ordre. En mermaid triga més o menys el mateix a escriure's que a descriure's en veu alta, per això és el tipus de diagrama que sobreviu més temps en un codi base. Tot el que hi ha a sota està a punt per copiar i enganxar a l'editor.

El mínim

Declara el tipus de diagrama i després escriu una línia per missatge. Els participants es creen a la primera menció, en l'ordre en què apareixen.

sequenceDiagram
  User->>API: POST /orders
  API->>DB: INSERT order
  DB-->>API: order id
  API-->>User: 201 Created

Declara els participants explícitament amb participant User quan vulguis un ordre concret d'esquerra a dreta en lloc de l'ordre de primera menció.

Tipus de fletxa

SintaxiSignificat
A->>B: textPetició — línia contínua, punta de fletxa plena
A-->>B: textResposta — línia discontínua, punta de fletxa plena
A->B: textLínia contínua, punta de fletxa oberta
A-)B: textMissatge asíncron — punta de fletxa oberta, no s'espera resposta
A-xB: textMissatge que falla o es descarta

La convenció que val la pena mantenir: contínua per a la crida, discontínua per a la resposta. Un lector pot llavors distingir una petició d'una resposta sense llegir ni una sola etiqueta.

Participants i àlies

sequenceDiagram
  participant U as Browser
  participant A as API gateway
  participant S as Order service
  U->>A: GET /orders
  A->>S: list(userId)
  S-->>A: orders
  A-->>U: 200 OK

Fes servir actor U as Browser en lloc de participant per dibuixar un ninot de pal — val la pena per a la persona a l'extrem esquerre d'un flux d'autenticació.

Barres d'activació

Les barres d'activació mostren durant quant de temps un participant està ocupat. Marca-les explícitament amb activate/deactivate, o afegeix + i - a les fletxes, que és més curt i més difícil de descompensar.

sequenceDiagram
  User->>+API: POST /pay
  API->>+Bank: charge
  Bank-->>-API: authorised
  API-->>-User: receipt

Bucles, condicionals i treball en paral·lel

sequenceDiagram
  User->>API: POST /import
  loop every row
    API->>DB: upsert row
  end
  alt all rows valid
    API-->>User: 200 OK
  else some failed
    API-->>User: 422 with errors
  end
  par notify
    API->>Email: send summary
  and audit
    API->>Log: write entry
  end
  • loop <label> … end — repetició.
  • alt <label> … else <label> … end — branques mútuament excloents.
  • opt <label> … end — una branca que potser simplement no passa.
  • par <label> … and <label> … end — coses que passen al mateix temps.
  • critical / break — una secció que no s'ha d'interrompre, i una sortida anticipada.

Notes

sequenceDiagram
  User->>API: POST /login
  Note right of API: Rate limited<br>5 per minute
  API-->>User: token
  Note over User,API: Token is valid for 30 days

Note over A,B abasta dos participants i és el lloc adequat per a una restricció que pertany a la interacció més que a un dels dos costats.

Un exemple complet

sequenceDiagram
  actor U as User
  participant A as App
  participant P as Provider
  U->>+A: Click "Sign in"
  A-->>-U: Redirect to provider
  U->>+P: Authorise
  P-->>-U: Redirect back with code
  U->>+A: GET /callback?code=…
  A->>+P: Exchange code for token
  P-->>-A: access token
  Note right of A: Session cookie set here
  A-->>-U: Signed in
Inici de sessió OAuth, de principi a fi.

Edita aquest diagrama

Enganxa'l a la pestanya de codi i canvia una línia — la previsualització es redibuixa mentre escrius.

Preguntes freqüents

Com numero els missatges?

Posa autonumber a la línia just després de sequenceDiagram. Cada missatge rep llavors un número seqüencial, cosa que fa molt més fàcil parlar d'un diagrama en comentaris de revisió.

Un participant pot enviar-se un missatge a si mateix?

Sí — escriu el mateix nom als dos costats: API->>API: retry. Mermaid dibuixa el bucle de tornada a la mateixa línia de vida.

Com mostro que un participant es destrueix?

Fes servir destroy <name> abans del missatge que l'acaba, o create participant <name> perquè aparegui a mig diagrama en lloc de a dalt de tot.

Puc editar un diagrama de seqüència al llenç visual?

El llenç visual edita flowcharts. Els diagrames de seqüència s'escriuen a la pestanya de codi, on es renderitzen en directe a la previsualització — cosa que normalment és més ràpida de totes maneres, ja que un diagrama de seqüència és essencialment una llista de línies.

Més guies

  1. Exporta mermaid a PNG o SVG

    Quatre maneres de treure un diagrama mermaid — PNG, SVG, codi font .mmd i un bloc Markdown — i quan cadascuna és la resposta correcta.

  2. Full de trucs de sintaxi mermaid

    Formes de node, fletxes, subgrafs i estils en una sola pàgina — més un exemple funcional de cada tipus de diagrama que renderitza mermaid.

Obre l'editor. Gratuït — sense registre.

Un llenç en blanc, una pestanya de codi i totes les opcions d'exportació — gratuïtes, al teu navegador, ara mateix.