54 lines
4.7 KiB
XML
54 lines
4.7 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 375 680" role="img" aria-labelledby="title desc">
|
||
<title id="title">Матрица совместимости двух клиентов API</title>
|
||
<desc id="desc">В левой части response проверки для v1 и v2, в правой request проверки для current service. Additive поле проходит, удаление обязательного поля и смена семантики отклоняются.</desc>
|
||
<rect width="375" height="680" fill="#111827" rx="20"/>
|
||
<text x="25" y="40" fill="#f9fafb" font-family="Arial, sans-serif" font-size="18" font-weight="700">Совместимость API: reader и поток</text>
|
||
<text x="25" y="63" fill="#9ca3af" font-family="Arial, sans-serif" font-size="11">Schema описывает форму; test проверяет ожидаемое поведение.</text>
|
||
|
||
<rect x="22" y="90" width="331" height="38" rx="8" fill="#1f2937"/>
|
||
<text x="37" y="115" fill="#e5e7eb" font-family="Arial, sans-serif" font-size="13" font-weight="700">response → client</text>
|
||
<text x="225" y="115" fill="#e5e7eb" font-family="Arial, sans-serif" font-size="12" font-weight="700">v1</text>
|
||
<text x="290" y="115" fill="#e5e7eb" font-family="Arial, sans-serif" font-size="12" font-weight="700">v2</text>
|
||
|
||
<text x="37" y="159" fill="#d1d5db" font-family="Arial, sans-serif" font-size="11">+ optional deliveryWindow</text>
|
||
<rect x="211" y="140" width="50" height="31" rx="7" fill="#065f46"/>
|
||
<text x="222" y="160" fill="#d1fae5" font-family="Arial, sans-serif" font-size="11" font-weight="700">PASS</text>
|
||
<rect x="278" y="140" width="50" height="31" rx="7" fill="#065f46"/>
|
||
<text x="289" y="160" fill="#d1fae5" font-family="Arial, sans-serif" font-size="11" font-weight="700">PASS</text>
|
||
|
||
<text x="37" y="205" fill="#d1d5db" font-family="Arial, sans-serif" font-size="11">− required totalMinor</text>
|
||
<rect x="211" y="186" width="50" height="31" rx="7" fill="#7f1d1d"/>
|
||
<text x="222" y="206" fill="#fee2e2" font-family="Arial, sans-serif" font-size="11" font-weight="700">STOP</text>
|
||
<rect x="278" y="186" width="50" height="31" rx="7" fill="#7f1d1d"/>
|
||
<text x="289" y="206" fill="#fee2e2" font-family="Arial, sans-serif" font-size="11" font-weight="700">STOP</text>
|
||
|
||
<text x="37" y="251" fill="#d1d5db" font-family="Arial, sans-serif" font-size="11">status changed semantics</text>
|
||
<rect x="211" y="232" width="50" height="31" rx="7" fill="#7f1d1d"/>
|
||
<text x="222" y="252" fill="#fee2e2" font-family="Arial, sans-serif" font-size="11" font-weight="700">STOP</text>
|
||
<rect x="278" y="232" width="50" height="31" rx="7" fill="#7f1d1d"/>
|
||
<text x="289" y="252" fill="#fee2e2" font-family="Arial, sans-serif" font-size="11" font-weight="700">STOP</text>
|
||
|
||
<line x1="25" y1="290" x2="350" y2="290" stroke="#374151"/>
|
||
<rect x="22" y="315" width="331" height="38" rx="8" fill="#1f2937"/>
|
||
<text x="37" y="340" fill="#e5e7eb" font-family="Arial, sans-serif" font-size="13" font-weight="700">request → current service</text>
|
||
<text x="255" y="340" fill="#e5e7eb" font-family="Arial, sans-serif" font-size="12" font-weight="700">result</text>
|
||
|
||
<text x="37" y="384" fill="#d1d5db" font-family="Arial, sans-serif" font-size="11">v1: confirmationCode</text>
|
||
<rect x="250" y="365" width="78" height="31" rx="7" fill="#065f46"/>
|
||
<text x="268" y="385" fill="#d1fae5" font-family="Arial, sans-serif" font-size="11" font-weight="700">ACCEPT</text>
|
||
|
||
<text x="37" y="430" fill="#d1d5db" font-family="Arial, sans-serif" font-size="11">v2: + deliveryPreference</text>
|
||
<rect x="250" y="411" width="78" height="31" rx="7" fill="#065f46"/>
|
||
<text x="268" y="431" fill="#d1fae5" font-family="Arial, sans-serif" font-size="11" font-weight="700">ACCEPT</text>
|
||
|
||
<text x="37" y="476" fill="#d1d5db" font-family="Arial, sans-serif" font-size="11">typo: deliveryPrefrence</text>
|
||
<rect x="250" y="457" width="78" height="31" rx="7" fill="#7f1d1d"/>
|
||
<text x="267" y="477" fill="#fee2e2" font-family="Arial, sans-serif" font-size="11" font-weight="700">REJECT</text>
|
||
|
||
<rect x="25" y="532" width="325" height="112" rx="10" fill="#172554" stroke="#3b82f6"/>
|
||
<text x="42" y="559" fill="#dbeafe" font-family="Arial, sans-serif" font-size="12" font-weight="700">Вывод для rollout</text>
|
||
<text x="42" y="584" fill="#bfdbfe" font-family="Arial, sans-serif" font-size="11">1. Новый response проверяет старый reader.</text>
|
||
<text x="42" y="604" fill="#bfdbfe" font-family="Arial, sans-serif" font-size="11">2. Новый request проверяет current service.</text>
|
||
<text x="42" y="624" fill="#bfdbfe" font-family="Arial, sans-serif" font-size="11">3. STOP удерживает legacy contract до migration.</text>
|
||
</svg>
|