Bir mermaid sıralama diyagramı nasıl yazılır
Bir sıralama diyagramı kimin kime, hangi sırayla konuştuğunu gösterir. Mermaid'de yazması yaklaşık sesli anlatmak kadar sürer, bu yüzden bir kod tabanında en uzun süre hayatta kalan diyagram türüdür. Aşağıdakilerin hepsi editöre kopyala-yapıştıra hazırdır.
Minimum gereklilik
Önce diyagram türünü bildirin, sonra mesaj başına bir satır yazın. Katılımcılar ilk anıldıkları sırayla, ilk anılmalarında oluşturulur.
sequenceDiagram
User->>API: POST /orders
API->>DB: INSERT order
DB-->>API: order id
API-->>User: 201 Createdİlk anılma sırası yerine belirli bir soldan sağa sıra istediğinizde katılımcıları participant User ile açıkça bildirin.
Ok türleri
| Sözdizimi | Anlamı |
|---|---|
A->>B: text | İstek — düz çizgi, dolu ok ucu |
A-->>B: text | Yanıt — kesik çizgi, dolu ok ucu |
A->B: text | Düz çizgi, açık ok ucu |
A-)B: text | Asenkron mesaj — açık ok ucu, yanıt beklenmez |
A-xB: text | Başarısız olan veya düşen mesaj |
Korunmaya değer kural: çağrı için düz çizgi, dönüş için kesik çizgi. Böylece okuyucu tek bir etiket okumadan bir isteği bir yanıttan ayırt edebilir.
Katılımcılar ve takma adlar
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 OKBir çöp adam figürü çizmek için participant yerine actor U as Browser kullanın — bir kimlik doğrulama akışının sol kenarındaki insan için buna değer.
Aktivasyon çubukları
Aktivasyon çubukları bir katılımcının ne kadar süre meşgul olduğunu gösterir. Ya activate/deactivate ile açıkça işaretleyin ya da oklara + ve - ekleyin, ki bu daha kısadır ve dengesi bozulması daha zordur.
sequenceDiagram
User->>+API: POST /pay
API->>+Bank: charge
Bank-->>-API: authorised
API-->>-User: receiptDöngüler, koşullar ve paralel işler
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— tekrar.alt <label>…else <label>…end— birbirini dışlayan dallar.opt <label>…end— hiç gerçekleşmeyebilecek bir dal.par <label>…and <label>…end— aynı anda gerçekleşen şeyler.critical/break— kesintiye uğramaması gereken bir bölüm ve erken bir çıkış.
Notlar
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 iki katılımcıyı kapsar ve etkileşimin taraflarından birine değil, etkileşimin kendisine ait bir kısıtlama için doğru yerdir.
Tam bir örnek
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 inBu diyagramı düzenleyin
Kod sekmesine yapıştırın ve bir satırı değiştirin — yazarken önizleme yeniden çizilir.
Sıkça sorulanlar
Mesajları nasıl numaralandırırım?
sequenceDiagram'dan hemen sonraki satıra autonumber yazın. Her mesaj daha sonra sıralı bir numara alır, bu da bir diyagramı inceleme yorumlarında tartışmayı çok daha kolay hale getirir.
Bir katılımcı kendine mesaj gönderebilir mi?
Evet — her iki tarafa da aynı adı yazın: API->>API: retry. Mermaid döngüyü aynı yaşam çizgisine geri çizer.
Bir katılımcının yok edildiğini nasıl gösteririm?
Onu sonlandıran mesajdan önce destroy <name> kullanın, ya da en üstte değil diyagramın ortasında görünmesi için create participant <name> kullanın.
Bir sıralama diyagramını görsel tuvalde düzenleyebilir miyim?
Görsel tuval akış şemalarını düzenler. Sıralama diyagramları kod sekmesinde yazılır, önizlemede canlı olarak render edilirler — ki bir sıralama diyagramı esasen bir satır listesi olduğu için bu genellikle zaten daha hızlıdır.