作成するシーケンス図
コード
スタイルを別ファイル(skinparam.pu)として定義する。
sequence.pu
@startuml Authentication
' skinparam.pu(別ファイルで定義したスタイルファイル)の読み込み
!include skinparam.pu
' 画像幅
scale 1024 width
skinparam Participant {
' Participant間のマージン
Padding 30
}
title ユーザ認証API
participant "外部サービス" as Client
participant "ユーザ認証API" as Server #2dc12d
participant "認証サーバ" as Auth
participant "データベース" as DB
Client -> Server: ユーザ認証APIリクエスト\n(ユーザID, パスワード)
activate Client
activate Server
Server -> Auth: 認証リクエスト
activate Auth
Auth -> DB: ユーザ情報確認
activate DB
Auth <-- DB: ユーザ情報
deactivate DB
alt
rnote left of Client
<font color="#4169e1">【認証成功】</font>
end rnote
Server <-- Auth: 認証OK
deactivate Auth
Client <-- Server: 認証トークン
deactivate Server
deactivate Client
else #ffe3e7
rnote left of Client #ffe3e7
<font color="#ff0000">【認証失敗】</font>
end rnote
Server <-- Auth: 認証NG
Client <-- Server: 認証失敗メッセージ
end
@enduml
skinparam.pu
' 全体の背景色
skinparam backgroundColor #f8f8ff
' Participantの共通スタイル
skinparam Participant {
BackgroundColor #6495ed
FontColor #FFFFFF
BorderThickness 0
Padding 60
' Width 300
}
skinparam sequence {
' 処理メッセージのスタイル
ArrowFontColor #2f4f4f
ArrowFontSize 13
' ArrowFontName Arial
' ライフラインのスタイル
LifeLineBorderColor #808080
' LifeLineBackgroundColor #A9DCDF
' グループ(altなども含む)のスタイル
' GroupBorderColor #4169e1
GroupBorderColor #808080
GroupFontSize 14
GroupFontColor #565555
' GroupFontColor #696969
}
' 処理メッセージの中央寄せ
skinparam SequenceMessage {
Align center
}
' 注釈のスタイル
skinparam Note {
BorderThickness 0
BackgroundColor #f8f8ff
' BorderColorrgb(0, 0, 0)
' FontColor #000000
}
' タイトルのスタイル
skinparam title {
FontColor #4169e1
}
altの条件分岐のメッセージ
altの条件分岐メッセージの下に四角い注釈(rnote
)を使っている。
この理由はaltの条件分岐メッセージが用意しているスタイルを使うと、「認証成功」と「認証失敗」の表示位置ばずれるし、後ろの図と文字が重なって見にくいため。(個人的な好みです)
' altの条件分岐メッセージが用意しているスタイルの場合
alt <font color="#4169e1">認証成功</font>
Server <-- Auth: 認証OK
deactivate Auth
Client <-- Server: 認証トークン
deactivate Server
deactivate Client
else #ffe3e7 <font color="#ff0000">認証成功</font>
Server <-- Auth: 認証NG
Client <-- Server: 認証失敗メッセージ
end