Sekvenssikaavio
Mermaid voi renderöidä sekvenssikaavioita. Sekvenssikaavio on vuorovaikutuskaavio, joka näyttää, miten eri prosessit toimivat keskenään ja niiden toimintajärjestyksen.
Kopioi
Upotus
sequenceDiagram
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
Huomautus solmuista: Mermaid-kielen kirjoitustavasta johtuen sana "end" rikkoo koko kaavion. Jos sinun on pakko käyttää sanaa "end", se on suljettava sulkeisiin (), lainausmerkkeihin "", aaltosulkeisiin {} tai hakasulkeisiin [], eli: (end), [end], {end}.
Syntaksi
Osallistuja
Osallistujat näytetään siinä järjestyksessä, jossa ne esiintyvät kaavion lähdetekstissä. Joskus saatat haluta näyttää osallistujat eri järjestyksessä kuin ensimmäisessä viestissä; osallistujien esiintymisjärjestys voidaan määrittää seuraavilla tavoilla:
Kopioi
Upotus
sequenceDiagram
participant Alice
participant Bob
Bob->>Alice: Hi Alice
Alice->>Bob: Hi Bob
角色
Jos haluat käyttää roolisymbolia tekstillisen suorakaiteen sijaan, se voidaan toteuttaa roolilauseella seuraavasti.
Kopioi
Upotus
sequenceDiagram
actor Alice
actor Bob
Alice->>Bob: Hi Bob
Bob->>Alice: Hi Alice
Alias
Voit määrittää aliaksen käyttämällä as-merkintää osallistujan määrittelyn jälkeen
Kopioi
Upotus
sequenceDiagram
participant A as Alice
participant J as John
A->>J: Hello John, how are you?
J->>A: Great!
Osallistujan luonti ja tuhoaminen
Osallistujia voidaan luoda ja tuhota viesteillä. Siksi lisää luonti- tai tuhoamiskäsky ennen viestiä.
Kopioi
Upotus
participant B
A --> B: Hello
Luontikäsky tukee osallistujan ja aliaksen erottamista. Viestin lähettäjä tai vastaanottaja voidaan tuhota, mutta vastaanottaja voidaan vain luoda.
Kopioi
Upotus
sequenceDiagram
Alice->>Bob: Hello Bob, how are you ?
Bob->>Alice: Fine, thank you. And you?
create participant Carl
Alice->>Carl: Hi Carl!
create actor D as Donald
Carl->>D: Hi!
destroy Carl
Alice-xCarl: We are too many
destroy Bob
Bob->>Alice: I agree
Ryhmittely/Laatikko
Osallistujat voidaan ryhmitellä pystysuoraan laatikkoon. Voit määrittää värin symbolilla (jos väriä ei ole määritetty, se on läpinäkyvä).
Kopioi
Upotus
box Aqua Group Description
... actors ...
end
box Group without description
... actors ...
end
box rgb(33,66,99)
... actors ...
end
box rgba(33,66,99,0.5)
... actors ...
end
Jos ryhmän nimi on värillinen, voit pakottaa värin läpinäkyväksi:
Kopioi
Upotus
box transparent Aqua
... actors ...
end
Kopioi
Upotus
sequenceDiagram
box Orange Alice & John
participant A
participant J
end
box Another Group
participant B
participant C
end
A->>J: Hello John, how are you?
J->>A: Great!
A->>B: Hello Bob, how is Charley?
B->>C: Hello Charley, how are you?
Viesti
Viesti voidaan näyttää yhtenäisellä viivalla tai katkoviivalla.
Viiva voi olla yhtenäinen tai katkoviiva, ja se voi päättyä erityyppisiin nuoliin, risteihin tai avoimiin nuoliin.
Kopioi
Upotus
[Actor][Arrow][Actor]:Message text
Kymmenen vakiomuotoista nuolityyppiä
| Tyyppi | Kuvaus |
|---|---|
| -> | Yhtenäinen viiva ilman nuolta |
| --> | Katkoviiva ilman nuolta |
| ->> | Yhtenäinen viiva nuolella |
| -->> | Katkoviiva nuolella |
| <<->> | Yhtenäinen viiva kaksisuuntaisella nuolella |
| <<-->> | Katkoviiva kaksisuuntaisella nuolella |
| -x | Yhtenäinen viiva, jonka päässä on risti |
| --x | Katkoviiva, jonka päässä on risti |
| -) | Yhtenäinen viiva, jonka päässä on ontto nuoli (asynkroninen) |
| --) | Katkoviiva, jonka päässä on ontto nuoli (asynkroninen) |
Aktivointi
Rooli voidaan aktivoida ja deaktivoida; deaktivointi tai aktivointi voi olla erillinen määrittely:
Kopioi
Upotus
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
activate Alice
Bob->>Alice: Hi Alice!
deactivate Alice
On myös pikamerkintä, jossa viestin nuolen perään lisätään + tai -.
Kopioi
Upotus
sequenceDiagram
Alice->>+John: Hello John, how are you?
John-->>-Alice: Great!
Saman roolin aktivoinnit voivat kasaantua:
Kopioi
Upotus
sequenceDiagram
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
John-->>-Alice: I feel great!
Kommentti
Sekvenssikaavioon voidaan lisätä kommentteja. Ne voidaan toteuttaa seuraavilla symboleilla: Note[right of] tai [left of] tai [over][osallistuja]: kommentin sisältö
Kopioi
Upotus
sequenceDiagram
participant John
Note right of John: Text in note
Voit myös luoda kommentin, joka kattaa kaksi osallistujaa:
Kopioi
Upotus
sequenceDiagram
Alice->John: Hello John, how are you?
Note over Alice,John: A typical interaction
Rivinvaihtomerkki
Rivinvaihtomerkkejä voidaan lisätä kommentteihin ja viesteihin:
Kopioi
Upotus
sequenceDiagram
Alice->John: Hello John,<br/>how are you?
Note over Alice,John: A typical interaction<br/>But now in two lines
Roolin nimen rivinvaihto vaatii aliaksen määrittämisen:
Kopioi
Upotus
sequenceDiagram
participant Alice as Alice<br/>Johnson
Alice->John: Hello John,<br/>how are you?
Note over Alice,John: A typical interaction<n/>But now in two lines
Silmukka
Sekvenssikaaviossa silmukka voidaan ilmaista seuraavalla symbolilla.
Kopioi
Upotus
loop Loop text
... statements ...
end
Katso alla oleva esimerkki:
Kopioi
Upotus
sequenceDiagram
Alice->John: Hello John, how are you?
loop Every minute
John-->Alice: Great!
end
Vaihtoehto
Sekvenssikaaviossa vaihtoehtoinen polku voidaan ilmaista symbolilla.
Kopioi
Upotus
alt Describing text...
statements
else
statements
end
或者如果存在可选序列:
Kopioi
Upotus
opt Describing text...
statements
end
Katso alla oleva esimerkki:
Kopioi
Upotus
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
alt is sick
Bob->>Alice: Not so good :(
else is well
Bob->>Alice: Feeling fresh like a daisy
end
opt Extra response
Bob->>Alice: Thanks for asking
end
Rinnakkainen
Rinnakkain tapahtuvat toiminnot voidaan esittää seuraavalla symbolilla.
Kopioi
Upotus
par Action 1
statements
and Action 2
statements
and Action N
statements
end
Katso alla oleva esimerkki:
Kopioi
Upotus
sequenceDiagram
par Alice to Bob
Alice->>Bob: Hello guys!
and Alice to John
Alice->>John: Hello guys!
end
Bob-->>Alice: Hi Alice!
John-->>Alice: Hi Alice!
Rinnakkaislohkoja voidaan myös sisäkkäistää.
Kopioi
Upotus
sequenceDiagram
par Alice to Bob
Alice->>Bob: Go help John
and Alice to John
Alice->>John: I want this done today
par John to Charlie
John->>Charlie: Can we do this today?
and John to Diana
John->>Diana: Can you help us today?
end
end
Kriittinen alue
Erilaisia tilanteita ehdollistamalla voidaan näyttää toimenpiteet, jotka on suoritettava automaattisesti.
Tämä tehdään seuraavalla symbolilla:
Kopioi
Upotus
critical [Action that must be performed]
... statements ...
option [Circumstance A]
... statements ...
option [Circumstance B]
... statements ...
end
Katso alla oleva esimerkki:
Kopioi
Upotus
sequenceDiagram
critical Establish a connection to the DB
Service-->DB: connect
option Network timeout
Service-->Service: Log error
option Credentials rejected
Service-->Service: Log different error
end
On myös mahdollista, ettei vaihtoehtoja ole lainkaan.
Kopioi
Upotus
critical Establish a connection to the DB
Service-->DB: connect
end
Tämä kriittinen lohko voidaan myös sisäkkäistää, mikä vastaa yllä nähtyä par-lausetta.
Keskeytys
Prosessissa voidaan osoittaa sekvenssin pysähtyminen, jota käytetään yleensä poikkeustilanteiden mallintamiseen.
Tämä tehdään seuraavalla symbolilla:
Kopioi
Upotus
break [something happened]
... statements ...
end
Katso alla oleva esimerkki:
Kopioi
Upotus
sequenceDiagram
Consumer-->API: Book something
API-->BookingService: Start booking process
break when the booking process fails
API-->Consumer: show failure
end
API-->BillingService: Start billing process
Taustan korostus
Prosessin voi korostaa värillisellä taustasuorakaiteella seuraavalla symbolilla:
Kopioi
Upotus
rect COLOR
... content ...
end
Väri määritellään rgb- ja rgba-syntaksilla.
Kopioi
Upotus
rect rgb(0, 255, 0)
... content ...
end
Kopioi
Upotus
rect rgba(0, 0, 255, .1)
... content ...
end
Katso alla oleva esimerkki:
Kopioi
Upotus
sequenceDiagram
participant Alice
participant John
rect rgb(191, 178, 255)
note right of Alice: Alice calls John.
Alice->>+John: Hello John, how are you?
rect rgb(142, 182, 89)
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
end
John-->>-Alice: I feel great!
end
Alice ->>+ John: Did you want to go to the game tonight?
John -->>- Alice: Yeah! See you there.
Kommentti
Sekvenssikaavioon voi syöttää kommentteja, jotka editori jättää huomiotta. Kommentin on oltava omalla rivillään ja alettava kaksoisprosenttimerkillä %%. Kaikki teksti kommentin alusta seuraavaan rivinvaihtoon asti tulkitaan kommentiksi, mukaan lukien mahdollinen kaaviosyntaksi.
Kopioi
Upotus
sequenceDiagram
Alice->>John: Hello John, how are you?
%% this is a comment
John-->>Alice: Great!
Merkkien escape-koodaus
Merkit voidaan escape-merkitä seuraavalla syntaksilla.
Kopioi
Upotus
sequenceDiagram
A->>B: I #9829; you!
B->>A: I #9829; you #infin; times more!
Annetut numerot ovat desimaalilukuja, joten (#) voidaan koodata muotoon (#35;). Myös HTML-merkkien nimiä tuetaan.
Koska puolipiste voi korvata rivinvaihdon merkinnän määrittelyssä, sinun on käytettävä muotoa (#59;), kun viestin tekstissä on puolipiste.
Numerointi
Sekvenssikaavion jokaiseen nuoleen voidaan liittää järjestysnumero. Kuten alla näkyy:
Kopioi
Upotus
sequenceDiagram
autonumber
Alice->>John: Hello John, how are you?
loop HealthCheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
Osallistujan valikko
Osallistuja voi sisältää ponnahdusvalikon, jossa on henkilökohtaisia linkkejä ulkoisille sivuille. Jos rooli esimerkiksi edustaa verkkopalvelua, hyödyllisiä linkkejä voivat olla linkki palvelun kuntoon liittyvään kojelautaan, palvelun koodin sisältävään repositorioon tai palvelua kuvaavaan wiki-sivuun.
Sen voi määrittää lisäämällä yhden tai useamman linkkirivin seuraavassa muodossa:
Kopioi
Upotus
link <actor>: <link-label> @ <link-url>
Kopioi
Upotus
sequenceDiagram
participant Alice
participant John
link Alice: Dashboard @ https://dashboard.contoso.com/alice
link Alice: Wiki @ https://wiki.contoso.com/alice
link John: Dashboard @ https://dashboard.contoso.com/john
link John: Wiki @ https://wiki.contoso.com/john
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
Edistynyt valikkosyntaksi
On olemassa JSON-muotoon perustuva edistynyt syntaksi. Jos hallitset JSON-muodon hyvin, myös tätä voi käyttää.
Sen voi määrittää lisäämällä linkkirivin seuraavassa muodossa:
Kopioi
Upotus
links <actor>: <json-formatted link-name link-url pairs>
示例如下:
Kopioi
Upotus
sequenceDiagram
participant Alice
participant John
links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"}
links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"}
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!