Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
JSON Schema. ΠΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΡΡ? / Π₯Π°Π±Ρ
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°: ΠΈΡΠΊΡΡΡΡΠ²ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΈΠ·Π»ΠΈΡΠ½Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ.
Π€ΡΠ΅Π΄Π΅ΡΠΈΠΊ ΠΠΈΡΠ»Π΅Ρ
ΠΠΈ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ Π΄Π°Π²Π½ΠΎ ΡΠΆΠ΅ Π½Π΅ ΡΠ΅ΠΊΡΠ΅Ρ, ΡΡΠΎ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ web-ΡΠ΅ΡΠ²ΠΈΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ SOAP Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ XML Π²Π΅ΡΠ½ΡΠΌ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° XML Schema (xsd-ΡΡ
Π΅ΠΌΡ), ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΡΡΡΠΊΡΡΡΡ XML ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π΅ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ: Ρ Π½ΠΈΡ
Π΅ΡΡΡ ΡΡΡΠΎΠ³ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°Π½Ρ Π² ΡΡ
Π΅ΠΌΠ΅, ΡΠΈΡΠ»ΠΎ ΠΏΡΠ°Π²ΠΈΠ» ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ XML.
ΠΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ·ΡΠΊ XML ΠΏΠΎΡΠ΅ΡΠ½ΠΈΠ»ΡΡ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ JSON (JavaScript Object Notation) Π² Π²ΠΈΠ΄Ρ Π΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΡΠΆΠ΅Π»ΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ (ΡΡΠΆΠ΅Π»ΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ XML), Π° ΡΠ°ΠΊΠΆΠ΅ Π² Π²ΠΈΠ΄Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ REST (REpresentational State Transfer) ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ. Π₯ΠΎΡΡ ΡΠ°ΠΌ REST-ΡΡΠΈΠ»Ρ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ JSON (ΠΎΠ½ Π²ΠΎΠΎΠ±ΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ, Π° Β«ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΒ»), Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΡΠ°ΡΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ REST API Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ JSON Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅Π»Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π’Π°ΠΊ Π²ΠΎΡ, ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ REST API Ρ JSONβΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡΠΎΡΠ½ΠΎ Π²ΠΎΡΠ»Π° Π² ΠΆΠΈΠ·Π½Ρ ΠΠ’ Π² Π ΠΎΡΡΠΈΠΈ (ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½Π°Ρ), Ρ ΠΎΡΡ ΠΎΠΏΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ XML Schema, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ²ΡΠΈΠΉ ΠΆΠΈΠ·Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² web-ΡΠ»ΡΠΆΠ± Π² ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠΏΠΎΡΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ c JSONβΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎ Π½Π΅ Π²ΡΠ΅ΠΌΠΈ, ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠ°Π΄ΠΎΠ²Π°ΡΡ.
ΠΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ Ρ XML Schema, ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π·Π°Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°ΡΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ Ρ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ, ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ Π΄ΡΠ°ΡΡ JSON Schema. ΠΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ json-schema.org, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΄ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΠΎΠ½ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ Π² ΡΡΠ°ΡΡΡΠ΅ Β«draftΒ», Π΅Π³ΠΎ Π΄Π°Π²Π½ΠΎ ΡΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ .
Π‘Π°ΠΌΠ° JSON Schema ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠΎ ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ΅ΠΌ XML Schema. Π’ΠΎ, ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π· XML Schema, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JSON Schema, Π΅ΡΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠΎ Π·Π΄Π΅ΡΡ ΠΆΠ΅ Ρ Π±Ρ Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΊΡ ΡΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ. ΠΠΎΡΠ΅ΠΌΡ?
ΠΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½Π΅Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ΅ΠΌ ΠΎΠ½Π° ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅, ΡΡΠΎ ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ ΡΡΡΡΠΊΡΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΡΠ΅ΠΌ Π»Π΅Π³ΡΠ΅ ΠΎΠ½ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ ΠΈ Ρ.Π΄.
ΠΠ΅ ΠΌΠΎΠ³Ρ ΡΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠΎΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ: Β«ΠΡΡ Π³Π΅Π½ΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΠΎ, ΠΈ Π²ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π³Π΅Π½ΠΈΠ°Π»ΡΠ½ΠΎΒ». Π Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡ Π΅ΠΌΡ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², ΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠΈΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°?
ΠΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅
ΠΡΠ°ΠΊ, ΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΡΠ° ΡΡΠ°ΡΡΡ?
Π― Π±Ρ Ρ ΠΎΡΠ΅Π»Π° ΠΏΡΠΈΠ²Π»Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΊ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ JSON ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΡ Π΅ΠΌΠΎΠΉ JSON Schema. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Β«Π½Π° Π²Ρ ΠΎΠ΄Π΅Β» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° REST API Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ JSON-ΡΡ Π΅ΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΡΠ΅ ΠΈ Π±ΡΡΡΡΠ΅Π΅, Π½ΠΎ Ρ ΡΠΎΡΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ, Π΅Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ΄ΠΎΡΠΎΠΆΠ°Π½ΠΈΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. Π’Π°ΠΊΠΆΠ΅ Π»ΡΠ±Π°Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π±Π΅Π· Π»ΠΈΡΠ½Π΅Π³ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π’Π°ΠΊΠΆΠ΅ Π² ΡΠ΅Π»ΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ JSON Schema ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΉ Ρ ΠΏΠΎΠ΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠΏΡΡΠΎΠΌ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ JSON ΠΈ JSON Schema, ΠΎΠΏΠΈΡΡ Π·Π°Π΄Π°ΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄Π°Π»Π΅Π΅.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ»Π΅Π²ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠΎΠ»Π΅Π²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° REST-ΡΠ΅ΡΠ²ΠΈΡΠ°.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ:
Π ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΅ΡΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ, ΠΈΠΌ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠΎΠ²Π΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° (ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ) ΠΊ ΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ (ΡΠ΅ΡΡΡΡΠ°ΠΌ) Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ ΡΠΎΠ»ΠΈ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΡ Π³Π°Π»ΡΠ΅Ρ (ΡΠΎΠ»Ρ) Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ/ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ) ΠΊ ΡΠ°ΡΡΠ΅ΡΠ½ΡΠΌ Π»ΠΈΡΡΠΊΠ°ΠΌ (ΡΠ΅ΡΡΡΡ) ΠΏΠΎ Π·Π°ΡΠ°Π±ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ Π²ΡΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ², Π° Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° (ΡΠΎΠ»Ρ), ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ/ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ) ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ°ΡΡΠ΅ΡΠ½ΠΎΠΌΡ Π»ΠΈΡΡΠΊΡ (ΡΠ΅ΡΡΡΡ).
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ»Π΅Π²ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΠΈ, Π½Π°Π±ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ.
Π ΠΈΡΡΠ½ΠΎΠΊ 1. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎΠ»Π΅Π²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ
Π‘ΠΏΠΎΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ»Π΅Π²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π² ΡΠΎΠ»Π΅Π²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅:
- Π ΠΎΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ, Π±ΡΡ Π³Π°Π»ΡΠ΅Ρ ΠΈ Ρ. Π΄.).
- Π Π΅ΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡΠΈ ΠΈ Ρ.Π΄.).
- ΠΠΏΠ΅ΡΠ°ΡΠΈΡ/ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ, ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Ρ.Π΄.).
ΠΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠΎΠ»Π΅Π²ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° (ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²) ΠΏΡΠΈΠ±Π΅Π³Π°ΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π’Π°Π±Π»ΠΈΡΠ° 1. ΠΠΈΡΠΊΡΠ΅ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° Π΄ΠΎΡΡΡΠΏΠΎΠ².
Π Π΅ΡΡΡΡ: documents | Π Π΅ΡΡΡΡ: objects | |
---|---|---|
Π ΠΎΠ»Ρ: manager | read, print | read, create |
Π ΠΎΠ»Ρ: accountant | read, create | read |
ΠΠ°Π»Π΅Π΅ Π² ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ ΡΠ½Π°ΡΠ°Π»Π° Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ JSON ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΡ
ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JSON Schema, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π±ΡΠ΄Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ-ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² Π΄Π»Ρ ΡΠΎΠ»Π΅ΠΉ, ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ JSON ΠΈ ΠΈΡ
JSONβΡΡ
Π΅ΠΌ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π½Π°ΡΠ΅ΠΉ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
JavaScript Object Notation (JSON)
JSON (Π°Π½Π³Π». JavaScript Object Notation) β ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° JavaScript.
Π’Π΅ΠΎΡΠΈΡ
Π―Π·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ JSON Π·Π°Π΄Π°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ
. ΠΠ»Ρ ΠΏΠ°ΡΡ {βΠΊΠ»ΡΡβ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅} Π΄Π»Ρ Β«ΠΊΠ»ΡΡΠ°Β» Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΠΏ string, Π΄Π»Ρ Β«Π·Π½Π°ΡΠ΅Π½ΠΈΡΒ» ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΡΠΈΠΏΡ: string, number, object (ΡΠΈΠΏ JSON), array, boolean (true ΠΈΠ»ΠΈ false) ΠΈ null.
Π ΠΈΡΡΠ½ΠΎΠΊ 2. Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ JSON
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ΅, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ JSON ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° JavaScript, Π³Π΄Π΅:
- ΠΠ°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ {βΠΊΠ»ΡΡβ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅}.
- ΠΠ°Π½Π½ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π·Π°ΠΏΡΡΡΠΌΠΈ.
- Π ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
- Π ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ.
- ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Β«ΠΊΠ»ΡΡΠ΅ΠΉΒ» ΡΠ΅Π³ΠΈΡΡΡΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ.
Π ΠΈΡΡΠ½ΠΎΠΊ 3. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ JSON
ΠΡΠ°ΠΊΡΠΈΠΊΠ°
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅:
Π ΠΈΡΡΠ½ΠΎΠΊ 4. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ»Π΅ΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ json
ΠΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎΠ»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ², ΠΏΡΠΈ ΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ΄Π΅ΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Ρ ΠΎΠΏΠΈΡΡΠ²Π°Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΠΎΠ»Π΅ΠΉ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4 Π²ΡΠ΄Π΅Π»Π΅Π½Ρ Π΄Π²ΡΠΌΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°ΠΌΠΈ).
Π ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ json-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π ΠΈΡΡΠ½ΠΎΠΊ 5. ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ»Π΅ΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ, ΡΡΠ»ΠΎΠ²Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ 3 Β«ΡΠ°Π±Π»ΠΈΡΡΒ» Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠΎΠ»Π΅ΠΉ Π² Π³ΡΡΠΏΠΏΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ², Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠΈΡ . Π‘ΠΎΡΡΠ°Π² Β«Π°ΡΡΠΈΠ±ΡΡΠΎΠ²Β» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠΏΡΠΎΡΠ°Π΅Ρ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π·Π°Π΄Π°Π΄ΠΈΠΌ ΠΈ Π΄Π»Ρ Π΄Π²ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ². ΠΡΠΈΠ²Π΅Π΄Ρ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ) ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ².
Π ΠΈΡΡΠ½ΠΎΠΊ 6. ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON
Π ΠΈΡΡΠ½ΠΎΠΊ 7. ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON
ΠΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ JSON Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ»Π΅ΠΉ, ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ/ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΌΡ: ΠΊ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ JSON Schema ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡ
Π΅ΠΌΡ ΠΏΠΎΠ΄ Π½Π°ΡΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ!
JSON Schema
Π’Π΅ΠΎΡΠΈΡ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡ
Π΅ΠΌΠ° json Π½Π°ΠΏΠΈΡΠ°Π½Π° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠΈΠΏΡ JSON ΠΏΠ»ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: ΡΠΈΠΏ integer, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠΌ ΡΠΈΠΏΠ° number. Π‘Π°ΠΌΠ° ΡΡ
Π΅ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ JSON-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡ
Π΅ΠΌΠ° ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°ΠΌΠΎΠΉ ΡΡ
Π΅ΠΌΡ:
Π ΠΈΡΡΠ½ΠΎΠΊ 8. Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ JSON Schema
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠΈΡΡΠ½ΠΊΠ°, Π΄Π»Ρ ΡΡ Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΡΠ΅ ΡΠ΅ ΠΆΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΡΡΠΎ ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° JSON, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 3.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ β ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΡΡ Π΅ΠΌΠ΅ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ JSON-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
JSON Schema ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
- ΠΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° JSON.
- Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° β Β«keywordsΒ», Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΊΠΎΡΠ½Ρ ΡΡ Π΅ΠΌΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈ ΡΠΏΡΡΠΊΠ°ΡΡΡ ΠΊ ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Β«ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°Β» ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΡΠΎ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ, ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Β«titleΒ», Β«descriptionΒ» ΠΈ Π΄Ρ., ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡ
Π΅ΠΌΡ. ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°: Β«$schemaΒ». ΠΡΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡ
Π΅ΠΌΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ URI, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: «$schema»: Β«json-schema.org/draft-04/schema#Β».
ΠΠ΄Π΅ΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²Π°ΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡ Π΅ΠΌΠΎΠΉ. ΠΠΎ 4-ΠΉ Π΄ΡΠ°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅. Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ (JSON Schema 2019-09 Release Notes) Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ json-schema.org/draft/2019-09/release-notes.html.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° JSON. ΠΡ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ.
Π’Π°Π±Π»ΠΈΡΠ° 2. ΠΠ½Π°Π»ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ JSON Schema. ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈ ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΡΡ
Π΅ΠΌΡ JSON, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΎΠΏΠΈΡΠ°ΡΡ Π½Π°ΠΌ Π±ΡΠ΄ΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΡΠΈΡ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON.
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ².
ΠΡΠ°ΠΊΡΠΈΠΊΠ°
ΠΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ
JSON-ΡΡ
Π΅ΠΌ ΠΌΡ ΠΏΠΎΡΡΡΠΏΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΌΠΈΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON. Π’.Π΅. ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΌ ΠΈ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π΄Π»Ρ Π½Π°ΡΠΈΡ
ΡΡ
Π΅ΠΌ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΡΠΎΠ»Π΅ΠΉ, ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ), Π° Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡ
Π΅ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π²ΡΠΈΡ
ΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π² git.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡ Π΅ΠΌΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ»Π΅ΠΉ.
Π ΠΈΡΡΠ½ΠΎΠΊ 9. ΠΡΠΈΠΌΠ΅Ρ JSON Schema Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ»Π΅ΠΉ
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅, ΡΡ Π΅ΠΌΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ JSON-ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½Π°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ»Π΅ΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4. ΠΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JSON ΡΡ Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π‘Ρ Π΅ΠΌΡ Π΄Π²ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² (ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ²) ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ ΡΠΎ ΡΡ Π΅ΠΌΠΎΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ»Π΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΡΠ΄Ρ ΠΈΡ Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ, Π° ΠΏΡΠΈΠ²Π΅Π΄Ρ ΡΡ Π΅ΠΌΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΡΠ΅Π±Π΅ Π²ΡΠ΅ 3 ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΡ Π΅ΠΌΠ° Π²ΡΠ΅Π³ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΠΏΡΠΈ ΡΠ°ΡΠΊΡΡΡΠΈΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅Π΅ ΡΠ°ΡΡΡ.
Π ΠΈΡΡΠ½ΠΎΠΊ 10. ΠΡΠΈΠΌΠ΅Ρ JSON Schema ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ΅Π³ΠΎ Π² ΡΠ΅Π±Π΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΠΎΠ»Π΅ΠΉ, ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ²
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ°ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Β«anyOfΒ».
Π’Π°ΠΊΠΆΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°Π³Π»ΡΠ΄Π½Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ Π²Π°ΠΆΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΡ Π΅ΠΌΡ:
Π ΠΈΡΡΠ½ΠΎΠΊ 11. ΠΡΠΈΠΌΠ΅Ρ JSON Schema ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ΅Π³ΠΎ Π² ΡΠ΅Π±Π΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΠΎΠ»Π΅ΠΉ, ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ
ΠΠ· ΡΠΈΡΡΠ½ΠΊΠ° ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ Π½Π΅ Π΄ΡΠ±Π»ΠΈΡΡΠ΅Ρ Π² ΡΠ΅Π±Π΅ ΠΊΠΎΠ΄ ΠΈΠ· ΡΠ°Π½Π΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΡΠΎΠ»Π΅ΠΉ, ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ «$ref».
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π½ΠΎ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ, Π° ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π² ΡΠ°Π·Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ , ΡΠΊΠ°Π·Π°Π² ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΡΡ ΠΊ Π½ΠΈΠΌ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ. ΠΠ°Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΡ Π΅ΠΌΡ, Π»ΠΈΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Ρ ΠΈΡ Π² Π½ΡΠΆΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ.
ΠΠ° ΡΡΠΎΠΌ ΠΌΠΎΠΉ ΠΎΠ±Π·ΠΎΡ JSON ΠΈ JSON Schema Ρ Π·Π°Π²Π΅ΡΡΠ°Ρ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π·Π΄Π΅ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΎΠΊΠ°ΠΆΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΠΏΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ JSON SΡhema.
ΠΠΌΠ΅ΡΡΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΡΠΌΠ°Ρ, ΠΏΠΎΡΠ° ΠΏΠΎΠ΄Π²ΠΎΠ΄ΠΈΡΡ ΠΈΡΠΎΠ³ΠΈ. Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ JSON Schema Π² ΠΈΡΠΎΠ³Π΅ Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ?
- ΠΠΎΠΆΠ΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΆΠΈΠ·Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΠΎ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ JSON -ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΠ. - ΠΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΏΡΠΎΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΠΎΡΠΌΠ°ΡΡ ΠΈ ΡΠΎΡΡΠ°Π² Π΄Π°Π½Π½ΡΡ Ρ Β«Π·Π°Π΄Π΅Π»ΠΎΠΌΒ» Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ.
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ , ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΠ.
- JSON-Schema ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ API.
- Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ API.
- ΠΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
- ΠΠΈΠ±ΠΊΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ JSON Schema Π² run-time ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² Β«enumΒ», ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠΌΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΈΠ»ΠΈ workflow ΡΠΎ ΡΡΠ°ΡΡΡΠ°ΠΌΠΈ Π² Β«enumΒ» (ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡ NtsDK ΠΈ VolCh). - JSON Schema ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ DTO
(ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ amarkevich)
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½Π°Ρ ΡΠ°ΠΌ ΡΠ΅ΡΠ°Π΅Ρ, Β«ΠΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΡΡ JSON SchemaΒ» Π² Π½Π°ΡΠΈΡ
IT -ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
. ΠΡΡΠ΅ Ρ ΠΏΡΠΈΠ²Π΅Π»Π° ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΡΡΠΈΡΠ°Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡ
Π΅ΠΌ, ΠΈ ΡΠ°Π΄ΠΈ ΡΠ΅Π³ΠΎ ΡΠΆΠ΅ ΡΡΠΎΠΈΡ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ ΠΎ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ Π·Π°Ρ
ΠΎΡΡΡ ΠΏΠΎΠΌΠΎΡΡ ΠΌΠ½Π΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ?
Π― Π±ΡΠ΄Ρ ΠΏΡΠΈΠ·Π½Π°ΡΠ΅Π»ΡΠ½Π° π
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠ»ΠΎΠΊ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ JSON ΠΈ JSON Schema
- ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² ΡΡ Π΅ΠΌΡ.
- ΠΡΡΠΎΡΠ½ΠΈΠΊ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² ΡΡ Π΅ΠΌΡ.
- ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ° (Π΄ΡΠ°ΡΡΠ°).
- Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ΅Π»ΠΈΠ·ΠΎΠ² (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°).
- ΠΠ½Π»Π°ΠΉΠ½-Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΡΠΈΡ Π΄ΡΠ°ΡΡΠ° JSON-Schema.
- ΠΡΠΊΡΡΡΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ JSON Schema
- JSON Schema Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΡΠ°ΠΌΠΈΠΌ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΎΠΌ (ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΎΡ alemiks), Π° ΡΠ°ΠΊΠΆΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ ΠΈΠ· ΠΌΠΈΡΠ° angular ngx-schema-form, AJSF (ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΎΡ anotherpit).
Π ΡΡΡΠ»ΠΊΡ Π½Π° git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ Π΄Π»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅: ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΠΎΡ,
Β© ΠΡΠΈΠ½Π° ΠΠ»Π°ΠΆΠΈΠ½Π°
JSON Schema | WebReference
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ JSON-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ.
{ "artists" : [ { "artistname" : "Deep Purple", "formed" : "1968" }, { "artistname" : "Joe Satriani", "born" : "1956-07-15" }, { "artistname" : "Maroon 5", "formed" : "1994" } ] }
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°Π·Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ born (ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ΄ΠΈΠ»ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ), Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ formed (ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»Π°ΡΡ Π³ΡΡΠΏΠΏΠ°/ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ).
Π JSON Π½Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ», ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Ρ. ΠΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ»Π΅ favoritecolor ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π΅Π³ΠΎ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»Π΅ born ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π»ΡΠ±ΡΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ².
"born" : "1956" "born" : 1956 "born" : "ΠΡΠ»Ρ 15, 1956" "born" : "1956-07-15" "born" : "07/15/1956" "born" : "15/07/1956" "born" : "Π― Π»ΡΠ±Π»Ρ Π°ΠΏΠ΅Π»ΡΡΠΈΠ½Ρ!" "born" : [ { "albumname" : "Flying in a Blue Dream", "year" : "1989", "genre" : "ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΠΊ" }, { "albumname" : "The Extremist", "year" : "1992", "genre" : "ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΠΊ" }, { "albumname" : "Shockwave Supernova", "year" : "2015", "genre" : "ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΠΊ" } ] "born" : "Π£ΠΏΡ!!!"
ΠΠ°, Π²Π΅ΡΠ½ΠΎ β Β«Π£ΠΏΡ!!!Β». ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ°Π²ΠΈΡΡ ΡΡΠ΄Π° ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ.
ΠΡΠ° Π³ΠΈΠ±ΠΊΠΎΡΡΡ β ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ JSON ΡΠ°ΠΊΠΈΠΌ ΠΏΡΠΎΡΡΡΠΌ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠΎ ΠΎΠ½Π° ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²ΡΡΠ΅. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΠ°ΡΡ JSON-ΡΠ°ΠΉΠ»Ρ, ΡΡΠ΅Π±ΡΡΡ, ΡΡΠΎΠ±Ρ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ»ΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ, Π»ΡΠ΄ΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π°ΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Β«Π― Π»ΡΠ±Π»Ρ Π°ΠΏΠ΅Π»ΡΡΠΈΠ½Ρ!Β».
ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ JSON ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ°ΠΉΠ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ Π΄Π°ΡΡ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΠΠΠ-ΠΠ-ΠΠ. ΠΠ»ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π²Π²ΠΎΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»ΠΎ Π² ΠΏΠΎΠ»Π΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ JSON-ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ·Π΄Π°Π² ΡΡ Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ. Π’Π°ΠΊΠΆΠ΅ ΡΡ Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ JSON-ΡΠ°ΠΉΠ»Π°, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊΠΎΠΉ.
{ "type": "string" }
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΡ Π΅ΠΌΡ JSON Schema (Π²Π·ΡΡ Ρ json-schema.org).
{ "title": "Example Schema", "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "age": { "description": "Age in years", "type": "integer", "minimum": 0 } }, "required": ["firstName", "lastName"] }
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡ Π΅ΠΌΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠ°.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, JSON Schema Π½Π° Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ ΠΆΠ΅ JSON. Π’Π°ΠΊ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ: JSON Schema ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΉ JSON-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡ Π΅ΠΌΡ. Π’ΠΎΠ³Π΄Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ ΡΡ Π΅ΠΌΠ° JSON ΠΈ ΠΎΠ½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ, JSON Schema ΡΡΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ JSON-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ.
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ JSON Schema, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ $schema.
{ "$schema": "http://json-schema.org/schema#" }
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ JSON Schema, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²Π½ΠΎ, ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ JSON Schema, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π΄Π»Ρ JSON Schema, ΡΠ΅ΡΠ½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ 4.
{ "$schema": "http://json-schema.org/draft-04/schema#" }
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ JSON Schema ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ JSONSchema.net. ΠΡΠΎ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ JSON Schema ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ Π²Π²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ JSON.
ΠΠ²ΡΠΎΡ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ
ΠΠ²ΡΠΎΡ: ΠΠ΅Π½ ΠΠΈΠΊΡΠΎΠ½
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: 11.10.2019
Π Π΅Π΄Π°ΠΊΡΠΎΡΡ: ΠΠ»Π°Π΄ ΠΠ΅ΡΠΆΠ΅Π²ΠΈΡ
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
JSON
Ctrl+β
JSON ΠΈ XML
Ctrl+β
Π‘Ρ Π΅ΠΌΠ° JSON | ΠΠΎΠΌ JSON Schema
JSON Schema β ΡΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² JSON.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° #
- ΠΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΡ .
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠΊΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ.
- ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ:
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ .
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ: ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ #
- Π’ΠΈΠΏΡ Π½ΠΎΡΠΈΡΠ΅Π»Π΅ΠΉ JSON Schema (
application/schema+json
ΠΈapplication/schema-instance+json
) Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ IETF RFC, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ ΠΏΡΠΈΠ½ΡΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π³ΡΡΠΏΠΏΠΎΠΉ HTTP API. - ΠΡΠ΄ΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ OpenJS Foundation ΡΠΎ ΡΡΠ°ΡΡΡΠΎΠΌ ΠΈΠ½ΠΊΡΠ±Π°ΡΠΈΠΈ, ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π½Π°ΡΠΈΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ Π·Π°Π΄Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΡΠ°ΡΡΡΡ At-Large ΠΈΠ»ΠΈ Impact.
- ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΉΡΠ°Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ. ΠΡΠ΅ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΡΠ·ΡΠ²! ΠΠ°ΡΠΈ ΡΠ΅Π»ΠΈ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ:
- Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π΄Π°Π²Π½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΡΡ Π΅ΠΌΡ JSON.
- ΠΠ°ΠΉΡΠ΅ ΡΡΠ½ΠΎΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌΠΈ.
- ΠΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ Π½Π°ΡΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ OpenAPI ΠΈ AsyncAPI, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ Linux Foundation (Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ Π·ΠΎΠ½ΡΠΈΠΊΠ°, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ OpenJS Foundation).
- ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΡΡ Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ JSON Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ. RFC IETF Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ, Ρ ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠΎΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ.
Π§ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ? #
Π£ΡΠΈΡΠ΅ΡΡ, ΠΏΠΎΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΏΠΎΠΌΠΎΡΡ, ΡΠΎΡΠΌΠΈΡΡΠΉΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ, ΠΎΠ±ΡΠ°ΠΉΡΠ΅ΡΡ Π² ΡΠ°ΡΠ΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ JSON Schema ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ!
π ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Open JSON Schema Slackπ¬ ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°
Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π·Π°Π½ΡΡΠΈΡ #
ΠΡ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠ°ΡΡ ΠΈ Π΄Π²Π° ΡΠ°Π·Π° Π² ΠΌΠ΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠΎΠ±ΡΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°.
π§βπ» Π§Π°ΡΡ ΡΠ°Π±ΠΎΡΡ
π· ΠΡΠΊΡΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠΎΠ±ΡΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°
Π§Π°ΡΡ ΡΠ°Π±ΠΎΡΡ β ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΠΎΡΠ½ΠΈΠΊ ΠΌΠ΅ΡΡΡΠ° Π² 15:00 BST ΠΈ ΠΏΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ.
ΠΡΠΊΡΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠΎΠ±ΡΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊ Π² 14:00 ΠΏΠΎ ΡΠΈΡ ΠΎΠΎΠΊΠ΅Π°Π½ΡΠΊΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π½ΠΈΡ
Π±ΡΠ΄Π΅Ρ ΠΎΡΠΌΠ΅Π½Π΅Π½ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅, ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ΅ΡΠ΅Π· ΠΊΠ°Π½Π°Π» ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ Slack ΠΈ Twitter.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ Π½Π°Ρ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° (ΠΈ Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡ).
ΠΡΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅? #
Π£ Π½Π°Ρ Π΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π±Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Understanding JSON Schema.
Π£ Π½Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈ ΡΠ°ΡΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ. ΠΡΠ΅ ΠΆΠ΅Π»Π°ΡΡΠΈΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΡΠ°ΡΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°, ΠΏΠΎΠΌΠΎΡΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ½Π°Π±Π»ΡΠ΄Π°ΡΡ.
ΠΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ²Π΅ΡΠ»ΠΈΠ²ΡΠΌ ΠΈ ΠΈΠ½ΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΠΎΠ΄Π΅ΠΊΡΠΎΠΌ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠΈΠΊΠΈ JSON Schema. (ΠΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Contributor Covenant ΠΈ IETF BCP 54.)
ΠΠΎΠΌΠ°Π½Π΄Π° JSON Schema ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ²Ρ ΠΏΠΎΠΌΠΎΡΡ!
Π Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ Slack.
ΠΠ°Ρ ΡΠ΅ΡΠ²Π΅Ρ Slack ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΠΈΡΡΠΎΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ GitHub.
ΠΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌ ΡΠ΅Π³ jsonschema
Π½Π° StackOverflow.
10.06.2022: ΠΡΠΏΡΡΠ΅Π½ Π²ΡΠΏΡΡΠΊ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Draft 2020-12 Π±Π΅Π· ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΠΎΠ²ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² IETF ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄ draft-bhutton-*-01
.
01.02.2021: ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΏΡΠΎΠ΅ΠΊΡ 2020-12!
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² IETF ΠΈΠΌΠ΅ΡΡ ΡΠΎΡΠΌΡ draft-bhutton-*-00
.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π°ΡΡ Π΄Π»Ρ ΠΌΠ΅ΡΠ°ΡΡ
Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ,
ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° 2020-12
(Π±Π΅Π· ΡΠ»ΠΎΠ²Π° Β«ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊΒ») Π½Π° ΡΡΠΎΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ ΠΈ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΌ. Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Β«Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΒ».
ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ #
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ JSON ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ , Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡ Π΅ΠΌΠΎΠΉ .
Π‘Π°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΡ Π΅ΠΌΠ° β ΡΡΠΎ ΠΏΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ JSON, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΡΡ Π΅ΠΌΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Β«ΡΠΈΠΏΒ» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΡΡΡΠΎΠΊΠΎΠΉ, ΡΠΈΡΠ»ΠΎΠΌ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Π½ΡΠ»Π΅Π²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ:
{ Β«ΡΠΈΠΏΒ»: Β«ΡΡΡΠΎΠΊΠ°Β» }
Π‘Ρ Π΅ΠΌΠ° JSON Π³ΠΎΡΠΎΠ²Π° ΠΊ Π³ΠΈΠΏΠ΅ΡΠΌΠ΅Π΄ΠΈΠ° ΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ HTTP API Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ JSON. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΡΡ Π΅ΠΌΡ JSON ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ URI, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ ΡΡΡΠ»ΠΎΠΊ HTTP ΠΈ Π²Π½ΡΡΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡ Π΅ΠΌΡ JSON, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΠΈΠΏΠ΅ΡΡΡ Π΅ΠΌΠ° JSON #
ΠΠΈΠΏΠ΅Ρ-ΡΡ Π΅ΠΌΠ° JSON Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΏΠ°ΡΠ·Π΅ / Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ 2021 Π³ΠΎΠ΄Π°.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡ ΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ½ΠΈ ΠΆΠ΅ΡΡΠ²ΡΡΡ, Π½Π° ΡΠ΄ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΡ Π΅ΠΌΡ JSON.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ Π³ΠΈΠΏΠ΅ΡΡΡ Π΅ΠΌΠ΅ JSON ΠΏΠΎΠ·Π΄Π½Π΅Π΅.
ΠΠ°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Ρ? ΠΡΡΠ΅Π·Π΄:
- ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ JSON
- Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
- Π£ΡΠ΅Π±Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ
- ΡΠ°ΡΡΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ JSON Schema
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠΎ Π΅ΡΡΡ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2020-12.
ΠΠΎΠΏΡΠΎΡΡ? Π§ΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅ ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ? ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ:
- GitHub
- ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ GitHub
- ΠΡΡΠΏΠΏΡ Google
- Π‘Π»Π°Π±ΡΠΉ
- ΠΡΠΊΡΡΡΡΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²
ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π½Π°ΡΠ°Π»Ρ ΡΠ°Π±ΠΎΡΡ | Π‘Ρ Π΅ΠΌΠ° JSON
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- ΠΠ°ΠΏΡΡΠΊ ΡΡ Π΅ΠΌΡ
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²
- Π£Π³Π»ΡΠ±Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²
- ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
- Π‘ΡΡΠ»ΠΊΠΈ Π²Π½Π΅ ΡΡ Π΅ΠΌΡ
- ΠΡΠΎΡΠΌΠΎΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ JSON
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ #
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡ Π΅ΠΌΠ° JSON. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π² ΡΠ°ΠΌΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ β ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π½Π° https://json-schema.org/specification.html.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅ΠΌ Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ JSON. Π ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΅ΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ:
- ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ:
productId
- ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°:
productName
- Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ:
ΡΠ΅Π½Π°
- ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ΅Π³ΠΎΠ²:
ΡΠ΅Π³ΠΎΠ²
.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
{ "ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°": 1, "productName": "ΠΠ΅Π»Π΅Π½Π°Ρ Π΄Π²Π΅ΡΡ", "ΡΠ΅Π½Π°": 12.50, "ΡΠ΅Π³ΠΈ": [ "Π΄ΠΎΠΌ", "Π·Π΅Π»Π΅Π½ΡΠΉ" ] }
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΡΠΎΡΡ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΎΡΡΠ°ΡΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ. ΠΠΎΡ Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ :
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅
productId
? - Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈ
productName
? - ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΠ΅Π½Π°
- Π―Π²Π»ΡΡΡΡΡ Π»ΠΈ Π²ΡΠ΅
ΡΠ΅Π³ΠΎΠ² ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ
?
ΠΠΎΠ³Π΄Π° Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΠΎ ΡΠΎΡΠΌΠ°ΡΠ΅ Π΄Π°Π½Π½ΡΡ , Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΊΠ»ΡΡΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ. JSON-ΡΡ Π΅ΠΌΠ° β ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ IETF, ΠΊΠ°ΠΊ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΡΠΊ ΡΡ Π΅ΠΌΡ #
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ Ρ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΡ Π΅ΠΌΡ JSON.
ΠΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ², Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ JSON.
ΠΠ°. ΡΡΠ°Π½Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ JSON Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ JSON, Π½ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ
ΡΠ΅ΠΊΡΡ/xml
.
- ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ
$schema
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠ° ΡΡ Π΅ΠΌΠ° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. - ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ
$id
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ URI Π΄Π»Ρ ΡΡ Π΅ΠΌΡ ΠΈ Π±Π°Π·ΠΎΠ²ΡΠΉ URI, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ URI Π² ΡΡ Π΅ΠΌΠ΅. - ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°
ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ
Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. ΠΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠΌ Π΄Π°Π½Π½ΡΠΌ. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ Π΄Π²ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ². - ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
ΡΠΈΠΏΠ°
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ JSON, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ JSON.
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://example.com/product.schema.json", "Π½Π°Π·Π²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ", "description": "Π’ΠΎΠ²Π°Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅", "ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ" }
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡ Π΅ΠΌΡ ΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ:
- ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΡ
Π΅ΠΌΡ:
$schema
ΠΈ$id
. - ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΡ
Π΅ΠΌΡ:
Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
ΠΈΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
. - ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ:
Π²Π²Π΅Π΄ΠΈΡΠ΅
.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² #
productId
β ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ΄ΡΠΊΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ²Π°ΡΠ°, Π±Π΅Π· Π½Π΅Π³ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½.
Π ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΡ Π΅ΠΌΡ JSON ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ Π½Π°ΡΡ ΡΡ Π΅ΠΌΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ:
- ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
ΡΠ²ΠΎΠΉΡΡΠ²
. - ΠΠ»ΡΡ
productId
.-
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΡΡ Π΅ΠΌΡ ΠΈΡΠΈΠΏ
ΠΎΡΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ β ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΠ±Π° ΠΈΠ· Π½ΠΈΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
-
-
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ
ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΠ΅Π΅productId
.
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://example.com/product.schema.json", "Π½Π°Π·Π²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ", "description": "Π’ΠΎΠ²Π°Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Acme", "ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ", "Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ": { "ΠΠΎΠ΄ ΡΠΎΠ²Π°ΡΠ°": { "description": "Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ" } }, "ΡΡΠ΅Π±ΡΠ΅ΡΡΡ": [ "ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°" ] }
-
productName
β ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅Π΅ ΠΏΡΠΎΠ΄ΡΠΊΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅ ΠΌΠ°Π»ΠΎ ΡΡΠΎ Π΅ΡΡΡ Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ, ΠΎΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. - ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ
ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ; Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌproductName
. - ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ
productId
ΠΈproductName
β ΠΌΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠ±Π° Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, Π° Π»ΡΠ΄ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠΌΠ΅Π½Π°.
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://example.com/product.schema.json", "Π½Π°Π·Π²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ", "description": "Π’ΠΎΠ²Π°Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Acme", "ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ", "Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ": { "ΠΠΎΠ΄ ΡΠΎΠ²Π°ΡΠ°": { "description": "Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ" }, "Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°": { "description": "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°", "ΡΠΈΠΏ": "ΡΡΡΠΎΠΊΠ°" } }, "ΡΡΠ΅Π±ΡΠ΅ΡΡΡ": [ "productId", "productName" ] }
Π£Π³Π»ΡΠ±Π»ΡΠ΅ΠΌΡΡ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π° #
ΠΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΡΠΎΠ²Π°ΡΠΎΠ² Π½Π΅Ρ. π
- ΠΠ»ΡΡ
ΡΠ΅Π½Π°
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ
Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ ΡΡ Π΅ΠΌΡ ΠΈΡΠΈΠΏΠΎΠΌ
ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΌΠ°ΡΡΠΈΠ² ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌrequired
validation. - Π£ΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΡΠ΅Π½Π°
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅ΠΌ-ΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ Π½ΡΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΠΉΠΠΈΠ½ΠΈΠΌΡΠΌ
.- ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Ρ
ΠΎΡΠ΅Π»ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ Π½ΠΎΠ»Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π½Ρ, ΠΌΡ Π±Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ
ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
.
- ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Ρ
ΠΎΡΠ΅Π»ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ Π½ΠΎΠ»Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π½Ρ, ΠΌΡ Π±Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://example.com/product.schema.json", "Π½Π°Π·Π²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ", "description": "Π’ΠΎΠ²Π°Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Acme", "ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ", "Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ": { "ΠΠΎΠ΄ ΡΠΎΠ²Π°ΡΠ°": { "description": "Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ" }, "Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°": { "description": "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°", "ΡΠΈΠΏ": "ΡΡΡΠΎΠΊΠ°" }, "ΡΠ΅Π½Π°": { "description": "Π¦Π΅Π½Π° ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ", "ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ": 0 } }, "ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ": [ "productId", "productName", "price" ] }
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ΅Π³Π°ΠΌ
ΠΊΠ»ΡΡΡ.
ΠΠ»Π°Π΄Π΅Π»Π΅Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΡΠΊΠ°Π·Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΠΡΠ»ΠΈ Π΅ΡΡΡ Π±ΠΈΡΠΊΠΈ, ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Π° Π±ΠΈΡΠΊΠ°,
- ΠΡΠ΅ ΡΠ΅Π³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ; ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
- ΠΡΠ΅ ΡΠ΅Π³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ.
- Ρ ΠΎΡΠΎΡΠΈ, Π½ΠΎ ΠΈΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ.
Π’Π΅Π³ΠΈ
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ:
- ΠΠ»ΡΡ
tags
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ. - ΠΠ° ΡΡΠΎΡ ΡΠ°Π· ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
type
βarray
. - ΠΡ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅:ΡΡΡΠΎΠΊ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠΈΠΏΠ°
. - ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
minItems
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π΅ΡΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. - ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
uniqueItems
ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. - ΠΡ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠΎΡ ΠΊΠ»ΡΡ Π²
ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ.
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://example.com/product.schema.json", "Π½Π°Π·Π²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ", "description": "Π’ΠΎΠ²Π°Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Acme", "ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ", "Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ": { "ΠΠΎΠ΄ ΡΠΎΠ²Π°ΡΠ°": { "description": "Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ" }, "Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°": { "description": "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°", "ΡΠΈΠΏ": "ΡΡΡΠΎΠΊΠ°" }, "ΡΠ΅Π½Π°": { "description": "Π¦Π΅Π½Π° ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ", "ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ": 0 }, "ΡΠ΅Π³ΠΈ": { "description": "Π’Π΅Π³ΠΈ ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΠΌΠ°ΡΡΠΈΠ²", "ΠΡΠ΅Π΄ΠΌΠ΅ΡΡ": { "ΡΠΈΠΏ": "ΡΡΡΠΎΠΊΠ°" }, "ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ": 1, "ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ": ΠΏΡΠ°Π²Π΄Π° } }, "ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ": [ "productId", "productName", "price" ] }
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ #
ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΌΡ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡΠΊΠΎΠΉ ΡΡ Π΅ΠΌΠΎΠΉ β Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ²Π΅Π½Ρ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ .
- ΠΠ»ΡΡ
ΡΠ°Π·ΠΌΠ΅ΡΡ
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠ°ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ²ΠΎΠΉΡΡΠ²
Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ .- ΠΡ ΠΎΠΏΡΡΡΠΈΠ»ΠΈ
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅. Π₯ΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΊΠ»ΡΡΠ΅ΠΉ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
- ΠΡ ΠΎΠΏΡΡΡΠΈΠ»ΠΈ
- ΠΡ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ
Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊ ΠΊΠ»ΡΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ Π½Π΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Ρ.
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://example.com/product.schema.json", "Π½Π°Π·Π²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ", "description": "Π’ΠΎΠ²Π°Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Acme", "ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ", "Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ": { "ΠΠΎΠ΄ ΡΠΎΠ²Π°ΡΠ°": { "description": "Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ" }, "Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°": { "description": "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°", "ΡΠΈΠΏ": "ΡΡΡΠΎΠΊΠ°" }, "ΡΠ΅Π½Π°": { "description": "Π¦Π΅Π½Π° ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ", "ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ": 0 }, "ΡΠ΅Π³ΠΈ": { "description": "Π’Π΅Π³ΠΈ ΡΠΎΠ²Π°ΡΠ°", "ΡΠΈΠΏ": "ΠΌΠ°ΡΡΠΈΠ²", "ΠΡΠ΅Π΄ΠΌΠ΅ΡΡ": { "ΡΠΈΠΏ": "ΡΡΡΠΎΠΊΠ°" }, "ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ": 1, "ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ": ΠΏΡΠ°Π²Π΄Π° }, "ΠΠ°Π±Π°ΡΠΈΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ": { "ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ", "Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ": { "Π΄Π»ΠΈΠ½Π°": { "ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ" }, "ΡΠΈΡΠΈΠ½Π°": { "ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ" }, "Π²ΡΡΠΎΡΠ°": { "ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ" } }, Β«ΡΡΠ΅Π±ΡΠ΅ΡΡΡΒ»: [ Β«Π΄Π»ΠΈΠ½Π°Β», Β«ΡΠΈΡΠΈΠ½Π°Β», Β«Π²ΡΡΠΎΡΠ°Β»] } }, "ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ": [ "productId", "productName", "price" ] }
Π‘ΡΡΠ»ΠΊΠΈ Π²Π½Π΅ ΡΡ Π΅ΠΌΡ #
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π°ΡΠ° ΡΡ Π΅ΠΌΠ° JSON Π±ΡΠ»Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ. ΠΡΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ JSON Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΡΡΡΠΊΡΡΡΠ°Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΏΡΠΈΡΠΈΠ½.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΡΡΡ ΡΡ Π΅ΠΌΡ JSON ΠΈ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π² Π½Π΅ΠΌ:
- ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
ΠΌΠΈΠ½ΠΈΠΌΡΠΌ
, ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ°Π½Π΅Π΅. - ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ
ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ
ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. - Π ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ ΠΎΠ½ΠΈ Π΄Π°ΡΡ Π½Π°ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
{ "$id": "https://example.com/geographical-location.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "ΠΠΎΠ»Π³ΠΎΡΠ° ΠΈ ΡΠΈΡΠΎΡΠ°", "description": "ΠΠ΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΠ»Π°Π½Π΅ΡΠ΅ (ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΠ΅ΠΌΠ»Ρ).", Β«ΡΡΠ΅Π±ΡΠ΅ΡΡΡΒ»: [ Β«ΡΠΈΡΠΎΡΠ°Β», Β«Π΄ΠΎΠ»Π³ΠΎΡΠ°Β» ], "ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ", "Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ": { "ΡΠΈΡΠΎΡΠ°": { "ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ", "ΠΌΠΈΠ½ΠΈΠΌΡΠΌ": -90, "ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ": 90 }, "Π΄ΠΎΠ»Π³ΠΎΡΠ°": { "ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ", Β«ΠΌΠΈΠ½ΠΈΠΌΡΠΌΒ»: -180, "ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ": 180 } } }
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΡ Π½ΠΎΠ²ΡΡ ΡΡ Π΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.com/product.schema.json",
"Π½Π°Π·Π²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ",
"description": "Π’ΠΎΠ²Π°Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Acme",
"ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ",
"Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ": {
"ΠΠΎΠ΄ ΡΠΎΠ²Π°ΡΠ°": {
"description": "Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ²Π°ΡΠ°",
"ΡΠΈΠΏ": "ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ"
},
"Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°": {
"description": "ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°",
"ΡΠΈΠΏ": "ΡΡΡΠΎΠΊΠ°"
},
"ΡΠ΅Π½Π°": {
"description": "Π¦Π΅Π½Π° ΡΠΎΠ²Π°ΡΠ°",
"ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ",
"ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ": 0
},
"ΡΠ΅Π³ΠΈ": {
"description": "Π’Π΅Π³ΠΈ ΡΠΎΠ²Π°ΡΠ°",
"ΡΠΈΠΏ": "ΠΌΠ°ΡΡΠΈΠ²",
"ΠΡΠ΅Π΄ΠΌΠ΅ΡΡ": {
"ΡΠΈΠΏ": "ΡΡΡΠΎΠΊΠ°"
},
"ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ": 1,
"ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ": ΠΏΡΠ°Π²Π΄Π°
},
"ΠΠ°Π±Π°ΡΠΈΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ": {
"ΡΠΈΠΏ": "ΠΎΠ±ΡΠ΅ΠΊΡ",
"Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ": {
"Π΄Π»ΠΈΠ½Π°": {
"ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ"
},
"ΡΠΈΡΠΈΠ½Π°": {
"ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ"
},
"Π²ΡΡΠΎΡΠ°": {
"ΡΠΈΠΏ": "ΡΠΈΡΠ»ΠΎ"
}
},
Β«ΡΡΠ΅Π±ΡΠ΅ΡΡΡΒ»: [ Β«Π΄Π»ΠΈΠ½Π°Β», Β«ΡΠΈΡΠΈΠ½Π°Β», Β«Π²ΡΡΠΎΡΠ°Β»]
},
"ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΠ»Π°Π΄Π°": {
"description": "ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΊΠ»Π°Π΄Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ²Π°Ρ.