Kā uzrakstīt mermaid secības diagrammu
Secības diagramma rāda, kurš ar kuru sazinās un kādā secībā. Mermaid to uzrakstīt aizņem apmēram tikpat ilgi, cik prasa aprakstīt skaļā balsī, tāpēc tas ir diagrammas veids, kas koda bāzē noturas visilgāk. Viss zemāk ir gatavs kopēšanai un ielīmēšanai redaktorā.
Minimums
Deklarējiet diagrammas veidu, tad rakstiet pa vienai rindai katram ziņojumam. Dalībnieki tiek izveidoti pie pirmās pieminēšanas, secībā, kādā tie parādās.
sequenceDiagram
User->>API: POST /orders
API->>DB: INSERT order
DB-->>API: order id
API-->>User: 201 CreatedDeklarējiet dalībniekus tieši ar participant User, ja vēlaties konkrētu secību no kreisās uz labo, nevis pirmās pieminēšanas secību.
Bultu veidi
| Sintakse | Nozīme |
|---|---|
A->>B: text | Pieprasījums — pilna līnija, aizpildīts bultas gals |
A-->>B: text | Atbilde — pārtraukta līnija, aizpildīts bultas gals |
A->B: text | Pilna līnija, tukšs bultas gals |
A-)B: text | Asinhrons ziņojums — tukšs bultas gals, atbilde nav gaidāma |
A-xB: text | Ziņojums, kas neizdodas vai tiek pazaudēts |
Konvencija, ko vērts ievērot: pilna līnija izsaukumam, pārtraukta atgriešanai. Tad lasītājs var atšķirt pieprasījumu no atbildes, nelasot nevienu etiķeti.
Dalībnieki un pseidonīmi
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 OKIzmantojiet actor U as Browser nevis participant, lai uzzīmētu stilizētu figūriņu — noder cilvēkam autentifikācijas plūsmas kreisajā malā.
Aktivācijas joslas
Aktivācijas joslas rāda, cik ilgi dalībnieks ir aizņemts. Atzīmējiet tās tieši ar activate/deactivate, vai pievienojiet bultām + un -, kas ir īsāk un grūtāk sabojāt līdzsvaru.
sequenceDiagram
User->>+API: POST /pay
API->>+Bank: charge
Bank-->>-API: authorised
API-->>-User: receiptCikli, nosacījumi un paralēls darbs
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
endloop <label>…end— atkārtošana.alt <label>…else <label>…end— savstarpēji izslēdzoši zari.opt <label>…end— zars, kas var arī nenotikt.par <label>…and <label>…end— lietas, kas notiek vienlaikus.critical/break— sadaļa, kuru nedrīkst pārtraukt, un agrīna izeja.
Piezīmes
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 daysNote over A,B aptver divus dalībniekus un ir īstā vieta ierobežojumam, kas pieder mijiedarbībai, nevis kādai no pusēm.
Pilns piemērs
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 inRediģējiet šo diagrammu
Ielīmējiet to koda cilnē un mainiet rindu — priekšskatījums pārzīmējas rakstīšanas laikā.
Biežāk uzdotie jautājumi
Kā numurēt ziņojumus?
Ierakstiet autonumber rindā tieši aiz sequenceDiagram. Tad katrs ziņojums saņem secīgu numuru, kas ievērojami atvieglo diagrammas apspriešanu pārskata komentāros.
Vai dalībnieks var nosūtīt ziņojumu pats sev?
Jā — uzrakstiet to pašu nosaukumu abās pusēs: API->>API: retry. Mermaid uzzīmē cilpu atpakaļ tajā pašā dzīves līnijā.
Kā parādīt, ka dalībnieks tiek iznīcināts?
Izmantojiet destroy <name> pirms ziņojuma, kas to noslēdz, vai create participant <name>, lai tas parādītos diagrammas vidū, nevis augšā.
Vai varu rediģēt secības diagrammu vizuālajā audeklā?
Vizuālais audekls rediģē plūsmas diagrammas. Secības diagrammas raksta koda cilnē, kur tās atveidojas dzīvē priekšskatījumā — parasti tas ir ātrāk, jo secības diagramma būtībā ir rindu saraksts.