- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
π API Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ
- ΠΠ²ΡΠΎΡ

- ΠΠΌΡ
- ΠΠΉΠ½ΡΡ ΠΏΠΈΡΠ΅Ρ ... π
- Telegram
ΠΠΉΠ½ΡΡ ΠΏΠΈΡΠ΅Ρ ... π263 ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠ°28 ΠΏΠΎΡΡΠΎΠ²ΠΠΈΠ²Ρ Π² ΠΠΊΠ°ΡΠ΅ΡΠΈΠ½Π±ΡΡΠ³Π΅, Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ Π±ΡΠΊΠ΅Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ. Π’ΡΡ Π΄Π΅Π»ΡΡΡ ΠΎΠΏΡΡΠΎΠΌ, ΠΌΡΡΠ»ΡΠΌΠΈ ΠΈ Π·Π°ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ ΠΈΠ· ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΡ ΠΊΠ½ΠΈΠ³. ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ½Π΅ Π² Π»ΠΈΡΠΊΡ - @ainr_c ΠΠΎΠΉ Π±Π»ΠΎΠ³ - https://ainur-khakimov.ru

π API Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ Π΄Π΅Π»ΡΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΏΠ΅ΡΠ΅ΡΠΊΠ°Π·ΠΎΠΌ Π³Π»Π°Π²Ρ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ "API Design Patterns" ΠΠΆ. ΠΠΆ. ΠΠΈΠ²Π°ΠΊΡΠ°, Π³Π΄Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ API.
ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ? ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² ΠΠΠ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ
ΡΠΈΠΏΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΈΠ³ΡΡ Triangle ΠΈ Square ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ countSides(), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ Shape. ΠΠ΅ΡΠ΅Π½ΠΎΡ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π² API ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ΅ΡΡΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Triangle ΠΈ Square) ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄. ΠΠΎ Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π½ΡΠ°Π½ΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ JSON ΠΈ HTTP. Π¦Π΅Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° β ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π² ΡΠ΅ΡΡΡΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ API.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠΌΠ΅ΡΡ ΡΡ
ΠΎΠΆΠΈΠ΅ ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ°ΡΠ΅ (TextMessage, PhotoMessage). Π ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ Message, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠΎΡΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ API. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ChatRoom ΠΈ Broadcast), ΡΠΎ Π»ΡΡΡΠ΅ ΠΈΡ
ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ API.
ΠΡΠ°ΠΊ, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ? ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π΅ type, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ ΡΠ΅ΡΡΡΡΠ°. ΠΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠΏΠ° ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΎΠ±Π»Π°Π·Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π½ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ (ΠΎΠ± ΡΡΠΎΠΌ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°ΠΆΡ). ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ
.
ΠΠ»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»Π΅ΠΉ, ΠΎΡ
Π²Π°ΡΡΠ²Π°ΡΡΠ΅Π΅ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΈΠΏΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ content, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π½ΡΠΉ ΡΠΈΠΏ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΡΠ΅ΡΡΡΡΠ°:
jsinterface Message { id: string; sender: string; type: 'text' | 'photo' | 'audio' | 'video'; content: string | Media; ... }
ΠΠ΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΠΏΡΠΎ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ! ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΡΡΠ΅Π±ΡΡΡ ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ² ΠΊ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ΅ΡΡΡΡΠ° Message ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅ΠΊΡΡ, Π° Π² ΡΠ»ΡΡΠ°Π΅ ΠΌΠ΅Π΄ΠΈΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΡΠΈΠΏΠΎΠΌ photo, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΡΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ URI. ΠΠ°ΠΆΠ½ΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠ°Ρ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ Ρ ΡΠΈΠΏΠΎΠΌ ΡΠ΅ΡΡΡΡΠ°).
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ POST /{id=shapes}:countSides, ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΡΠΈΠΏΠΎΠ² ΡΠΈΠ³ΡΡ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΏΡΠΎΡΠ°Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ Ρ ΠΈΡ
ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ Π½Π°ΡΡΡΠΈΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ.
ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ? Π‘ΡΠΎΠΈΡ Π±ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌΠΈ Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, ΡΠΈΠΏΠ° DeleteResource(). Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° any Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°Ρ
ΡΡΠ½ΠΊΡΠΈΠΉ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° - function deleteResource(resource: any): void. Π₯ΠΎΡΡ ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ API, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅ΡΠΎΠ΄ DeleteResource() ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠ΅ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΌ ΠΈ ΠΌΡΠ³ΠΊΠΈΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΡΠΈΠΏΠΎΠ². Π ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ΅ΡΡΡΡΠ°.
ΠΠΎΠ΄ΡΡΠΎΠΆΠΈΠΌ. ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² API - ΡΡΠΎ ΠΊΡΡΡΠ°Ρ ΡΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ type ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. Π‘ΡΠΎΠΈΡ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΠΏΡΠ°Π²Π΄Π°Π½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ API.
#Π·Π°ΠΌΠ΅ΡΠΊΠΈ_ΠΈΠ·_ΠΊΠ½ΠΈΠ³
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΡ
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
API ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ Π·Π°Π΄Π°Ρ (rerunnable jobs)

Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠΎΡΡ
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΡΠ³ΠΊΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (soft delete)

ΠΠ· ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠΈ #Π·Π°ΠΌΠ΅ΡΠΊΠΈ_ΠΈΠ·_ΠΊΠ½ΠΈΠ³
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΡΠ³ΠΊΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (soft delete)

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
API ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ Π·Π°Π΄Π°Ρ (rerunnable jobs)

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
API Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ API

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ API
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π² API
Π‘Π²Π΅ΠΆΠΈΠ΅ ΠΏΠΎΡΡΡ
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² Π€Π

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
Π‘ Π½Π°ΡΠ°Π»Π° ΡΠ½Π²Π°ΡΡ Ρ Π·Π°Π²Π΅Π» ΡΠ΅Π±Π΅ ΡΡΡΠ°Π½Π½ΡΡ ΠΏΡΠΈΠ²ΡΡΠΊΡ...

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΠ°ΡΠ°Π» ΡΠΈΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ "PostgreSQL 16 ΠΈΠ·Π½ΡΡΡΠΈ"....

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΠ°ΠΊ ΡΡΠ°ΡΡ ΡΠ΅Π½ΡΠΎΡΠΎΠΌ
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
"Π¦Π΅Π»Ρ" ΠΠ»ΠΈΡΡ Ρ ΠΠΎΠ»Π΄ΡΠ°ΡΡΠ° β ΡΡΠΎ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΈ...

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΠΎΠ½Π³ΡΠΈΠ΄ ΠΏΡΠΎ Scalafix

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ

- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ
ΠΠ΅Π»Π΅Π½ΡΠ΅ ΠΈ ΠΊΡΠ°ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ
