Mermaid
sequenceDiagram
actor R as 読者
participant S as 検索サービス
R->>+S: 手引きを検索
S-->>-R: 結果を返す 読み込み中…
Mermaid 11.15.0
シーケンス図は参加者同士のメッセージを表します。判断の流れはフローチャート、静的な構造はクラス図を選びましょう。
シーケンス図ジェネレーターで作成 →メッセージより先にエイリアスを宣言し、ライフラインの順序を決めます。
sequenceDiagram
actor R as 読者
participant S as 検索サービス
R->>+S: 手引きを検索
S-->>-R: 結果を返す 読み込み中…
| 構文 | 意味 |
|---|---|
| sequenceDiagram / participant / actor / as | ライフラインと表示名を宣言します。actorは人の記号です。 |
| participant A@{ "type": "boundary" } | 型はboundary、control、entity、database、collections、queueです。基本形はparticipantとactorです。 |
| -> | 矢印なしの実線 |
| --> | 矢印なしの破線 |
| ->> | 実線の矢印 |
| -->> | 破線の矢印 |
| <<->> | 実線の双方向矢印 |
| <<-->> | 破線の双方向矢印 |
| -x | 終端が交差印の実線 |
| --x | 終端が交差印の破線 |
| -) | 非同期を表す開いた実線矢印 |
| --) | 非同期を表す開いた破線矢印 |
| -|\ | 半矢印の種類。向きと線種は例で確認できます。 |
| --|\ | 半矢印の種類。向きと線種は例で確認できます。 |
| -|/ | 半矢印の種類。向きと線種は例で確認できます。 |
| --|/ | 半矢印の種類。向きと線種は例で確認できます。 |
| /|- | 半矢印の種類。向きと線種は例で確認できます。 |
| /|-- | 半矢印の種類。向きと線種は例で確認できます。 |
| \\- | 半矢印の種類。向きと線種は例で確認できます。 |
| \\-- | 半矢印の種類。向きと線種は例で確認できます。 |
| -\\ | 半矢印の種類。向きと線種は例で確認できます。 |
| --\\ | 半矢印の種類。向きと線種は例で確認できます。 |
| -// | 半矢印の種類。向きと線種は例で確認できます。 |
| --// | 半矢印の種類。向きと線種は例で確認できます。 |
| //- | 半矢印の種類。向きと線種は例で確認できます。 |
| //-- | 半矢印の種類。向きと線種は例で確認できます。 |
| A->>()B / A()->>B / A()->>()B | 送信側または受信側ライフラインの中央に接続します。 |
| activate / deactivate / ->>+ / -->>- | 活性区間を開始・終了します。入れ子でも開始と終了を対応させます。 |
| create participant / create actor / destroy | 最初の受信メッセージの前に生成し、最後のメッセージの前に破棄を指定します。 |
| Note left of / right of / over A,B | ライフラインの横や上に注記を置きます。<br/>は改行です。 |
| loop / alt / else / opt / par / and / critical / option / break / rect / end | 各ブロックはendで閉じます。else、and、optionは対応するブロック内で使い、rectには色を指定します。 |
| autonumber / autonumber 10 5 | 開始番号と増分を指定して自動採番できます。 |
| box Color Label / end | 参加者の宣言を色付きまたは透明の箱でまとめます。 |
| link A: Label @ URL / links A: {"Label":"URL"} | 参加者に単一リンクやJSONのメニューを追加します。 |
| %% / accTitle: / accDescr: | コメントとアクセシビリティ用の説明です。 |
短いidで参加者を識別し、表示名に説明を入れます。JSONで記号を変えられます。メッセージより先にライフラインを宣言しましょう。
sequenceDiagram
actor R as 読者
participant B@{ "type": "boundary" }
participant C@{ "type": "control" }
participant E@{ "type": "entity" }
participant D@{ "type": "database" }
participant L@{ "type": "collections" }
participant Q@{ "type": "queue" }
R->>B: 要求
B->>C: 検証
C->>E: 読み取り
E->>D: 問い合わせ
D-->>L: 結果
L-)Q: 通知 読み込み中…
文書の規約に合わせて矢印を選びます。開いた矢印は非同期を示すことが多く、交差印だけではライフラインは破棄されません。destroyが必要です。
sequenceDiagram
participant A as 送信者
participant B as 受信者
A->B: メッセージ
A-->B: メッセージ
A->>B: メッセージ
A-->>B: メッセージ
A<<->>B: メッセージ
A<<-->>B: メッセージ
A-xB: メッセージ
A--xB: メッセージ
A-)B: メッセージ
A--)B: メッセージ
A-|\B: メッセージ
A--|\B: メッセージ
A-|/B: メッセージ
A--|/B: メッセージ
A/|-B: メッセージ
A/|--B: メッセージ
A\\-B: メッセージ
A\\--B: メッセージ
A-\\B: メッセージ
A--\\B: メッセージ
A-//B: メッセージ
A--//B: メッセージ
A//-B: メッセージ
A//--B: メッセージ
A()->>()B: 中央への接続 読み込み中…
createは生成メッセージの直前、destroyは終了メッセージの直前です。各活性区間の開始と終了を対応させます。
sequenceDiagram
participant C as 制御役
create participant W as 作業役
C->>+W: 作業を開始
Note right of W: 一時的な処理
W-->>-C: 作業完了
destroy W
C-xW: 処理を停止 読み込み中…
endで閉じます。elseは分岐、andは並行処理、optionはcriticalの復旧経路です。breakは例外による中断を表します。
sequenceDiagram
participant C as クライアント
participant S as サービス
loop 再試行
C->>S: 要求
alt 受理
S-->>C: 結果
else 拒否
S-->>C: エラー
end
end
opt キャッシュあり
S-->>C: 保存済みの結果
end
par 記録処理
S->>S: 記録
and 指標
S->>S: 集計
end
critical 確定
S->>S: 保存
option 失敗
S-->>C: 巻き戻し
end
break 時間切れ
S-->>C: 停止
end
rect rgb(230,240,255)
Note over C,S: レビューの境界
end 読み込み中…
mirrorActorsは下部にも参加者を表示し、wrapはメッセージを折り返し、actorMarginはライフライン間を調整します。メッセージの順序は変わりません。
---
config:
sequence:
mirrorActors: false
wrap: true
actorMargin: 60
---
sequenceDiagram
participant R as 読者
participant G as 手引き
R->>G: リファレンスを読む 読み込み中…
入れ子の各ブロックにendを付けます。
誤った構文(下に修正例があります)
sequenceDiagram
loop 再試行
A->>B: 要求sequenceDiagram
loop 再試行
A->>B: 要求
end 読み込み中…
endは特別な語です。曖昧になる場合は引用符や括弧で囲み、予約語をidに使わないでください。