ΠΏΡΠΈΠΌΠ΅Ρ json api php
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ JSON-ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° PHP ΠΈ JavaScript
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ JSON
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ JSON Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
Π€ΠΎΡΠΌΠ°Ρ json ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² 2-Ρ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ :
1. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ 10, 15 ΠΈ «test» Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
PHP ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ JSON-ΡΠΎΡΠΌΠ°ΡΠΎΠΌ
Π ΡΠ·ΡΠΊΠ΅ php Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 5.2. Π΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ 4 ΡΡΠ½ΠΊΡΠΈΠΈ:
Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎ-Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ: json_encode ΠΈ json_decode. ΠΠ΅ Π±ΡΠ΄Ρ Π²Π΄Π°Π²Π°ΡΡΡΡ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° php.net. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ : ΠΏΡΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π² JSON-ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΡΡΠ½ΠΊΡΠΈΡ json_encode ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΡΡΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΠ½ΠΈΠΊΠΎΠ΄, Ρ.Π΅. Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡ Π½Π° \uXXXX ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, json-ΡΡΡΠΎΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΠΉ Π΄Π»Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° (Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°). ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ½ΠΈΠΊΠΎΠ΄ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΊΠΎΠ΄Π°), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ JSON_UNESCAPED_UNICODE.
Π’Π°ΠΊ ΠΆΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈΡΡ ΡΠ»ΡΡΠΈ Π΄Π»Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠΎΠ±Ρ ΡΡΡΠΎΠΊΠΈ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ ΠΊΠ°ΠΊ ΡΠΈΡΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JSON_UNESCAPED_SLASHES ΠΈ JSON_NUMERIC_CHECK. Π ΠΈΡΠΎΠ³Π΅, ΡΡΠΎΠ±Ρ json-ΡΡΡΠΎΠΊΠ° Π±ΡΠ»Π° ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΠΉ Π΄Π»Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΡΠ΄Π΅Π»Π°Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
ΠΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ ΠΎΠΏΡΠΈΠΉ ΡΡΡΠΎΠΊΠ° Π±ΡΠ»Π° Π±Ρ ΡΠ°ΠΊΠΎΠΉ:
Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ:
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ: Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ json-ΡΡΡΠΎΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΡ json_decode Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ°ΡΡΠΈΠ², ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π²Π½ΡΠΉ true.
ΠΠ° ΡΡΠΎΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ php-ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°Π²Π΅ΡΡΡ.
JavaScript ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ JSON-ΡΠΎΡΠΌΠ°ΡΠΎΠΌ
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ JSON-ΡΠΎΡΠΌΠ°Ρ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½ Π΄Π»Ρ ΡΠ·ΡΠΊΠ° JavaScript ΠΈ ΠΏΠΎΡΠΎΠΌ ΡΡΠ°Π» ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π² ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠΈΠ΄ΠΈΠΌΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ JSON ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΠΈ JavaScript, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² JSON-ΡΠΎΡΠΌΠ°Ρ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ:
ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ json-ΡΡΡΠΎΠΊΠΈ Π² ΠΌΠ°ΡΡΠΈΠ² Ρ ΡΠΈΡΡΠ°ΠΌΠΈ:
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ (ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ) ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² JSON-ΡΡΡΠΎΠΊΡ:
ΠΡΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ) ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² JSON-ΡΡΡΠΎΠΊΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ toJSON ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅Ρ, ΡΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ toJSON:
ΠΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ JSON.parse ΠΈ JSON.stringify ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠΏ.ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. ΠΠ΅ Π±ΡΠ΄Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ. ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΎ Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π΄Π΅ΡΡ: https://learn.javascript.ru/json.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ JSON-ΡΠΎΡΠΌΠ°ΡΠ°
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π»ΠΈΡΠ½ΠΎ Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΡΠΎΡΠΌΠ°Ρ JSON Π² 2-Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ :
1. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ajax-Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΠ±Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° «ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΠ»Π°ΡΡ» ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ.
Π JavaScript Ρ ΠΏΠΎΠΌΠΎΡΡΡ jQuery Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ajax-Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΄Π°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅Ρ:
ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡ get-info.php ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π΄Π΅Π»Π°Π΅ΡΡΡ ajax-Π·Π°ΠΏΡΠΎΡ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΈΠΌ:
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ JSON-ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Π±ΡΠ°ΡΠ·Π΅Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠΎΠΉ:
Π― ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΡΡΠ°Π» ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ Π² Π²ΠΈΠ΄Π΅ «Π΄Π΅ΡΠ΅Π²Π°», Ρ.ΠΊ. ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅. Π ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΅Π½ΠΈΡΡ, Π·Π°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠΉ, Π° ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠΉ.
2. ΠΠ°ΠΏΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π²ΠΎΠ΄ΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΡΠ°Π±Π»ΠΈΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π½Π΅ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΠ²Π΅ΡΠ° ΡΠΎΠ½Π° ΠΈ ΡΠ²Π΅ΡΠ° ΡΠ΅ΠΊΡΡΠ°.
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°Π²ΠΎΠ΄ΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π΄ΠΈ 2-Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π’ΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΡΡ ΡΠ°ΠΊΠΈΠΌ:
Π ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ ΡΠΎΠ²Π°ΡΠΎΠ² Π²ΡΠ±ΡΠ°Π» ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ.
ΠΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΈ Π²ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΡΠ·ΠΈΠ½Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
Π ΠΎΠ±ΡΡΠ½ΠΎΠΌ Π½Π΅ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΡΠ° JSON-ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ:
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ REST API Π² PHP.
1. ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
1.1 Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ REST API?
REST API ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ REST.
1.2 ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ REST API?
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ REST API Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΌΡΠΉ Π»Π΅Π³ΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» HTTP. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΎΠ΄Π½ΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ JavaScript Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅.
1.3 ΠΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ REST API?
REST API ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΡΠ±ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΡ. ΠΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ, ΠΏΡΠΎΡΠΈΡΠ°Π½Ρ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ REST API.
2. Π€Π°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ°
3. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
3.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ
3.2 ΠΠ°ΠΌΠΏ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ
3.3 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠ²Π°ΡΠΎΠ²
3.4 ΠΠ°ΠΌΠΏ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠ²Π°ΡΠΎΠ²
3.5 ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PDO.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ api ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΅Ρ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ config ΠΈ Π² Π½Π΅ΠΉ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» database.php ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
4. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠΎΠ²
4.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Product
ΠΠΎΠ΄ Π½ΠΈΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»Π°ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Product ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉΡΡΠ². Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ .
4.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ²Π°ΡΠΎΠ²
ΠΠΎΠ΄ Π½ΠΈΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ.
4.3 ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΎΠ²Π°ΡΠΎΠ²
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ // ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π±ΡΠ΄Π΅Ρ Π·Π΄Π΅ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ read.php ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
4.4 Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠΎΠ² ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ // ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π·Π΄Π΅ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ read.php ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
4.5 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° read()
4.6 Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ²Π°ΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ // ‘ΡΠΎΠ²Π°ΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ’ Π±ΡΠ΄Π΅Ρ Π·Π΄Π΅ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ read.php ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
5. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠΎΠ²
5.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° create.php
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ product ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π² Π½Π΅ΠΉ ΡΠ°ΠΉΠ» create.php ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ.
5.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° create()
6. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ²Π°ΡΠ°
6.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° read_one.php
6.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° readOne()
7. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°
7.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° update.php
7.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° update()
8. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°
8.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° delete.php
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ product ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» delete.php ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ.
8.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° delete()
9. ΠΠΎΠΈΡΠΊ ΡΠΎΠ²Π°ΡΠΎΠ²
9.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° search.php
Π ΠΏΠ°ΠΏΠΊΠ΅ product ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» search.php ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
9.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° search()
10. ΠΠ°Π³ΠΈΠ½Π°ΡΠΈΡ ΡΠΎΠ²Π°ΡΠΎΠ²
10.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° read_paging.php
Π ΠΏΠ°ΠΏΠΊΠ΅ product ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» read_paging.php ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
10.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° core.php
ΠΡΠΎΡ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡΠΉ URL ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠΈ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ config ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π² Π½Π΅ΠΉ ΡΠ°ΠΉΠ» core.php ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ.
10.3 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° readPaging()
10.4 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° count()
Π’Π°ΠΊ ΠΆΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ Product (ΡΠ°ΠΉΠ» product.php) Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ count() Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠΈ.
10.5 ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠΈ
11. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ
11.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Category
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ objects ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» category.php ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
11.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° read.php
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΠ°ΠΏΠΊΡ category Π² ΠΊΠΎΡΠ½Π΅, ΠΈ Π² Π½Π΅ΠΉ ΡΠ°ΠΉΠ» read.php ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
11.3 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° read()
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΊ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π² php Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JWT.
ΠΠ°Π΄Π΅ΡΡΡ, Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ Π΄Π°Π½Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΡΠ΅ΠΌΠ° web-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π²ΡΡ ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²ΡΡ ΡΡΠ°ΡΠ΅ΠΉ Π² Telegram.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ REST API
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ½ΡΡΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ backend-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ (ΡΠΎ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° PHP) ΠΎΡ frontend-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (ΡΠΎ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β JavaScript). Frontend Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΡ Π½Π° backend ΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ backend Π΅ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ. ΠΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠΎΡ ΠΎΠ±ΠΌΠ΅Π½? Π§Π΅ΠΌ ΠΎΠ½ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ? ΠΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠΌ? ΠΠ± ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΠΉΠ΄ΡΡ ΡΠ΅ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠΎΠΊΠ΅.
Π ΡΡΠΎΠΊΠ΅ ΠΏΡΠΎ composer ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΡΠΆΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ JSON. Π Ρ Π²Π°ΠΌ Π² ΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» ΠΏΠΎΠ³ΡΠ³Π»ΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΡΠ΅ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎΠ³ΠΎ? Π’ΠΎΠ³Π΄Π° ΡΠ΅ΠΉΡΠ°Ρ β ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΠΈΡΠ΅ΠΌ API
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ Ρ Π²Π°ΠΌΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π΅ API Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠ°ΡΡΡΠΌΠΈ.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ β ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ½Ρ-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON.
Π ΡΡΠ΄ΠΎΠΌ Ρ Π½ΠΈΠΌ ΡΠ°ΠΉΠ» index.php
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ: http://myproject.loc/api/
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠ²Π΅ΡΡΠΈ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ json.
Π PHP Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ json. ΠΠ°Ρ Π±ΡΠ΄ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π΅: json_encode() ΠΈ json_decode(). ΠΠ΅ΡΠ²Π°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΡΡΠ½ΠΎΡΡΡ Π² json-ΡΠΎΡΠΌΠ°ΡΠ΅.
ΠΠ±Π½ΠΎΠ²ΠΈΠΌ ΡΡΡΠ°Π½ΠΈΡΠΊΡ ΠΈ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π² ΡΠΎΠΌΠ°ΡΠ΅ JSON, ΡΡΠΎΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ Π² ΡΠ²ΠΎΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ JSON formatter.
Π ΡΠ½ΠΎΠ²Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΊΡ. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΎΡΠ²Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΡΠ°Π»ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ ΡΠΈΡΠ°ΡΡ β ΡΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΎΡΠ²Π΅Ρ Π±ΡΠ»ΠΎ Π»Π΅Π³ΡΠ΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π½Π°Ρ API Π² ΠΠΠ-ΡΡΠΈΠ»Π΅. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡ ΠΆΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ MVC, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ View Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° HTML-ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ JSON. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Ρ View ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° JSON-Π°.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΠ°ΡΡΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· API. Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠ°ΠΏΠΊΡ Api Π²Π½ΡΡΡΠΈ Controllers, Π° Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π°Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ:
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΎΡΡΠΈΠ½Π³ Π΄Π»Ρ API:
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎΠ½Ρ-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄Π»Ρ API.
ΠΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΉΡΠΈ Π½Π° Π½Π°Ρ API ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠ°ΠΊ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ°ΡΡΡ: http://myproject.loc/api/articles/1
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:
ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π°:
Postman
ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°Ρ ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡ ΡΡΠ°ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ API? ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π² API Π·Π°ΠΏΡΠΎΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π½Π° JS. Π Π² ΡΠ΅Π»ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ β ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΎΡΠΏΡΠ°Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Postman. Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅.
Π ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄:
ΠΠ΄Π΅ΡΡ php://input β ΡΡΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ . ΠΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΌΡ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ JSON ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠ°. file_get_contents β ΡΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠ· Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. Π json_decode Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ json Π² ΡΡΡΡΠΊΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ var_dump().
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠΎΡΡ:
Π Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Postman Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠ°ΠΊ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΆΠΌΡΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Send. ΠΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅ΠΌ Π½ΠΈΠΆΠ΅ Π΄ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡ Preview.
Π’ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π²ΡΠ²ΠΎΠ΄ var_dump ΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π² POST-Π·Π°ΠΏΡΠΎΡΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠ½Π΅ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΡΠ΅Π½ΠΈΡ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π² Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ:
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΎΡ ΡΡΠ½ΡΡΡ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΡΠ°ΡΡΡ, ΠΏΡΠΈΡΠ΅Π΄ΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON.
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π·Π΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΌ, ΠΊΡΠΎ ΡΠΊΠ°Π·Π°Π½ Π² Π°Π²ΡΠΎΡΠ΅ ΡΡΠ°ΡΡΠΈ. ΠΠΎ ΡΡΠΎ ΡΡΠ΅Π±Π½ΡΠΉ ΠΈ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ Ρ JSON-API.
Π‘Π½ΠΎΠ²Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² Postman ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΆΠΌΠ΅ΠΌ Send.
ΠΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅ΠΌ Π²Π½ΠΈΠ· Π΄ΠΎ ΠΎΡΠ²Π΅ΡΠ°, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡ Pretty.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠ°ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π°ΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://myproject.loc/api/articles/id_ΡΡΠ°ΡΡΠΈ.
REST API
Π’ΠΎ ΡΡΠΎ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ Ρ Π²Π°ΠΌΠΈ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ β ΡΡΠΎ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΡΠ΅Π±Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ API. ΠΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ API. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΡΡΠΈΠ½Π³ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΈΠΏΡ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, POST-Π·Π°ΠΏΡΠΎΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://myproject.loc/api/articles/1 Π²ΡΠ·ΠΎΠ²Π΅Ρ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ ΡΠΊΡΠ½ update, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΡΠ°ΡΡΡ Ρ Π GET-Π·Π°ΠΏΡΠΎΡ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ Π°Π΄ΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΊΡΠ½ view, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠ°ΡΡΡ.
Π’ΠΎ Π΅ΡΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² β POST, GET, PUT, DELETE. Π Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° Π·Π°ΠΏΡΠΎΡΠ° Π±ΡΠ΄ΡΡ Π²ΡΠ·Π²Π°Π½Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠΊΡΠ΅Π½Ρ. Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΡΡΡΠ° ΠΌΡ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ β ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ.
ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΡΡΠΊΡΡΡΠ° Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΡΠ²Π΅ΡΠ° ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ β ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠ°ΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON. Π§ΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΅Ρ β ΠΌΡ ΡΠΎΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΠ°ΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΏΠΎΠ»ΡΠΌΠΈ.
ΠΠΎΡ ΡΡΠΎΡ ΡΡΠΈΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ API Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΡΠ²Π΅ΡΠ°, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ β Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ REST API. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΡΡΠΎ, ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠ³ΡΡ ΡΠΏΡΠΎΡΠΈΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ: Β«Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ REST APIΒ». Π Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΠΊΠΎΠ³Π΄Π°:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ API ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠΌ ΠΈ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ, Π½ΠΎ Π΅ΡΠ΅ ΠΈ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅. Π ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎ API. ΠΠ΄ΠΈΠ½ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² JSON-ΡΠΎΡΠΌΠ°ΡΠ΅. Π’ΠΎΡ Π΅Π³ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ JSON Π² Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ REST JSON API
ΠΡΠ° ΠΏΠ°ΠΌΡΡΠΊΠ° ΠΏΠΈΡΠ°Π»Π°ΡΡ Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
Π½ΡΠΆΠ΄ (ΠΎΡΠΊΡΡΡΡ Π³Π»Π°Π·Π° ΠΌΠ΅Π½Π΅Π΅ ΠΎΠΏΡΡΠ½ΡΠΌ Π² Π²Π΅Π±Π΅ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ). ΠΠΎ, Ρ.ΠΊ. Ρ Π½Π°ΡΠΌΠΎΡΡΠ΅Π»ΡΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ΠΎΠ² ΠΎΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΡ
, ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΠΊΠΎΠ½ΡΠΎΡ, β Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Ρ Π½Π° Ρ
Π°Π±Ρ. ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.
ΠΠ°ΡΠ΅ΠΌ
ΠΠ°Π΄Π΅ΡΡΡ, ΡΠΈΡΠ°ΡΡΠΈΠΉ ΡΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, Π·Π°ΡΠ΅ΠΌ Π΅ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ REST api, Π° Π½Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠΎΠ½ΡΡΡ ΡΠΈΠΏΠ° SOAP. ΠΠΎΠΏΡΠΎΡ Π² ΡΠΎΠΌ, Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, Π΅ΡΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π²ΡΠΎΠ΄Π΅ Π±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ ΠΎΡΠ΅ΡΡ.
Π‘ΡΡΡΠΊΡΡΡΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ²
ΠΡΠ±ΠΎΠΉ http-Π·Π°ΠΏΡΠΎΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠΈ
Π³Π΄Π΅ METHOD β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° (GET, PUT ΠΈ Ρ.Π΄.), Π° URI β Π°Π΄ΡΠ΅Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ°.
Π Π½Π°ΡΠ°Π»Π΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ΄ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ β ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π²ΠΈΠ΄Π° key: value
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°, ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ°Ρ ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΊΡΠΈΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΠΈ Π·Π°ΡΠ΅ΠΌ β ΡΠ΅Π»ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π΅ΡΡΡ.
Π ΠΎΡΠ²Π΅ΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΡΡΠΎΠΊΠ° Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ http, ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌ ΡΡΠ°ΡΡΡΠΎΠΌ ΠΎΡΠ²Π΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ HTTP/1.1 200 OK ), Π΄Π°Π»Π΅Π΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΎΡΠ²Π΅ΡΠ°, ΠΏΠΎΡΠΎΠΌ ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°, ΠΏΠΎΡΠΎΠΌ ΡΠ΅Π»ΠΎ ΠΎΡΠ²Π΅ΡΠ°.
Π’ΡΡ Π²ΡΠΎΠ΄Π΅ Π²ΡΡ ΠΏΡΠΎΡΡΠΎ.
ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ²
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ² β UTF-8 ΠΈ ΡΠΎΠ»ΡΠΊΠΎ UTF-8, Ρ.ΠΊ. Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅, ΠΊΡ ΠΌ, «Π±ΡΠ°ΡΠ·Π΅ΡΡ» ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ²ΡΡΠΊΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° charset.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ html-ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Ρ.Π΅. ΡΠ΅ΠΆΠΈΠΌ JSON_UNESCAPED_UNICODE ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½. ΠΠ΅ Π²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π·Π½Π°ΡΡ Π²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ html ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ (ΡΠΈΠΏΠ° ΠΊΠ°ΠΊΠΈΡ -Π½ΠΈΠ±ΡΠ΄Ρ ΓΉ ), Π΄Π° ΠΈ ΠΏΡΠΈ ΡΡΠΌ ΡΡΡ html. ΠΠ΅ Π²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π³ΠΎΡΠΎΠ²Ρ/Ρ ΠΎΡΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ \uXXXX; ΠΈ &#XX;. ΠΠ»ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ «Π²Π΅ΡΡΠ»ΡΠ΅» ΡΠΈΡΡΠ°ΡΠΈΠΈ Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠΌ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡΠ΅ΠΉ ΠΈ Π°ΠΌΠΏΠ΅ΡΡΠ°Π½Π΄ΠΎΠ².
ΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΡΠΎΠΌΠ΅ URI ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΡΠΊΠΈΠΉ Π²Π°Π»ΠΈΠ΄Π½ΡΠΉ javascript ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌ JSON.
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π΄Π»Ρ ΡΡΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ. ΠΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ Π² json-Π΄Π°Π½Π½ΡΡ
, Ρ
ΠΎΡΡ ΠΈ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ Π² «ΠΎΠ±ΡΡΠ½ΠΎΠΌ» javascript, ΠΌΠΎΠ³ΡΡ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ ΠΏΠ»ΠΎΡ
ΠΎ ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π±Π°Π³ΠΈ.
Π Π·Π°ΠΏΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
ΠΡΠ·ΠΎΠ²Ρ ΠΊ API ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΡΠΎΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ html ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡ URI) ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π½Π°Π»ΠΈΡΠΈΡ application/json Π² Accept.
Π ΠΎΡΠ²Π΅ΡΠ°Ρ 2Ρ Ρ Ρ Π½Π΅ΠΏΡΡΡΡΠΌ ΡΠ΅Π»ΠΎΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΡΠ²Π΅ΡΠ°
ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ΅Π»Π° Π·Π°ΠΏΡΠΎΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π·Π°ΠΏΡΠΎΡΠ°
Π»ΠΈΠ±ΠΎ, ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²,
ΠΈ Π΄Π°Π»Π΅Π΅, Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ
ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π·Π°ΡΠΈΡΡ ΠΎΡ CSRF (Π° Π»ΡΡΡΠ΅ Π±Ρ Π²Π°ΠΌ Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ), ΡΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ CSRF-ΡΠΎΠΊΠ΅Π½ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ (ΡΠΈΠΏΠ° X-CSRF-Token) Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π° Π½Π΅ Π²Π½Π΅Π΄ΡΡΡΡ Π²ΡΡΡΠ½ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΏΡΠΎΡ. Π₯ΡΠ°Π½ΠΈΡΡ CSRF ΡΠΎΠΊΠ΅Π½ Π² ΠΊΡΠΊΠ°Ρ ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎ ΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΡΡΠΎ ΠΊΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡΠ°ΡΡΡ, Π² ΡΡΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ ΡΠΎΡΡΠΎΠΈΡ ΡΡΡΡ CSRF Π°ΡΠ°ΠΊΠΈ.
Π‘ΡΡΡΠΊΡΡΡΠ° URI
ΠΠ°Π³ΠΎΡΠΎΠ΄ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠΊΠΎΠ΅, Π½ΠΎ Π»ΡΡΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° β ΡΡΠΎΠ±Ρ Π²ΡΠ΅ URI ΠΈΠΌΠ΅Π»ΠΈ Π²ΠΈΠ΄
Π½Ρ, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ api Π»Π΅ΠΆΠΈΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΠ°ΠΏΠΊΠ΅,
ΠΠ»Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠ°ΡΡΠΈ URI Π΄ΠΎ Π·Π½Π°ΠΊΠ° Π²ΠΎΠΏΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠΊΡ
ΠΠ΅Π΄ΡΡΠΈΠΉ ΡΠ»ΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½, Ρ.ΠΊ. Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ URL Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ½ Π·Π°ΠΏΡΠΎΡ.
ΠΠ΅ΡΠΎΠ΄Ρ HTTP
GET /:entity/:id β getById
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 200 OK Ρ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON Π² ΡΠ΅Π»Π΅ ΠΎΡΠ²Π΅ΡΠ° (Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ)
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ id Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 404 Not Found
Π ΠΎΡΠ²Π΅ΡΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Ρ.ΠΊ. Π±ΡΠ°ΡΠ·Π΅ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠ΅ΡΠΈΡΡΡΡ GET ΠΈ HEAD Π·Π°ΠΏΡΠΎΡΡ. ΠΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΡΡΠ΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ:
GET /:entity[?param1=. ¶m2=. ] β ΡΠΏΠΈΡΠΎΡΠ½ΡΠΉ get
ΠΡΠΎΡΡΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ: Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 200 OK Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON Π² ΡΠ΅Π»Π΅ ΠΎΡΠ²Π΅ΡΠ° (Ρ.Π΅. ΠΎΡΠ²Π΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ [ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ] ).
ΠΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΏΡΡΡΠΎΠΉ, Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π²ΠΎΠ²Π·ΡΠ°ΡΠ°Π΅ΡΡΡ 200 OK Ρ ΠΏΡΡΡΡΠΌ ΠΌΠ°ΡΠΈΠ²ΠΎΠΌ [] Π² ΡΠ΅Π»Π΅ ΠΎΡΠ²Π΅ΡΠ°.
ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ: Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ β ΠΈΡΠΊΠΎΠΌΡΠΉ ΠΌΠ°ΡΡΠΈΠ². Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΡ β Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠΈ, ΡΠΈΠ»ΡΡΡΡ, ΡΡΡΡΡΠΈΠΊΠΈ ΠΈ ΠΏΡ. Π’ΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΡΠΆΠΈΡΠ΅ ΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΡΠΌ ΠΏΠΎ Π²ΡΠ΅ΠΌ api.
HEAD /:entity[/:id] β Π·Π°ΠΏΡΠΎΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²
ΠΠΎΠ»Π½ΡΠΉ Π°Π½Π°Π»ΠΎΠ³ GET Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ URI, Π½ΠΎ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π»ΠΎ ΠΎΡΠ²Π΅ΡΠ°, Π° ΡΠΎΠ»ΡΠΊΠΎ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ HEAD Π·Π°ΠΏΡΠΎΡΠΎΠ² Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°.
ΠΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ pre-flight Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠ°ΡΠ½ΡΡ , ΠΏΠΎ ΠΈΡ ΠΌΠ½Π΅Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΠ°ΡΠ·Π΅Ρ Chrome Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠΈΠ΄Π°Π΅ΡΡΡ head-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ CORS ΠΏΡΠΈ ΠΊΡΠΎΡΡ-Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ (Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΈ ΠΏΡ). ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ head-Π·Π°ΠΏΡΠΎΡΠ° ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ.
ΠΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±Π΅Π· Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ°-ΡΠ°ΠΉΠ»ΠΎΠ²).
POST /:entity β ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° :entity
Π ΡΠ΅Π»Π΅ Π·Π°ΠΏΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ, Ρ.Π΅.
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ 201 Created Ρ ΠΏΡΡΡΡΠΌ ΡΠ΅Π»ΠΎΠΌ, Π½ΠΎ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ
ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌ Π½Π° ΠΌΠ΅ΡΡΠΎΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π»ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΅ΡΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π° id ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· Location.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ POST ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡ (RPC), Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΡΠ°ΡΡΡ 200 OK ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π»Π΅. ΠΠΎΠΎΠ±ΡΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ REST ΠΈ RPC Π² ΠΎΠ΄Π½ΠΎΠΌ api β ΠΈΠ΄Π΅Ρ ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ, Π½ΠΎ Π²ΡΡΠΊΠΎΠ΅ Π±ΡΠ²Π°Π΅Ρ.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π΅ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΡΠΉ Π½Π΅ΠΊΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Ρ.Π΅. ΠΏΠΎΠ²ΡΠΎΡ Π΄Π²ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ POST Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
PUT /:entity/:id β ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ
Π Π·Π°ΠΏΡΠΎΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON.
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ 204 No Data Ρ ΠΏΡΡΡΡΠΌ ΡΠ΅Π»ΠΎΠΌ, Ρ.ΠΊ. Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΅ΡΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, Ρ.Π΅. ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ PUT Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΠ΅Π»ΠΎΠΌ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Π² ΠΠ.
PATCH /:entity/:id β ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
Π Π·Π°ΠΏΡΠΎΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Ρ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 200 OK Ρ ΡΠ΅Π»ΠΎΠΌ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ Π·Π°ΠΏΡΠΎΡΡ getById, ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ, Ρ.ΠΊ. Π΄Π²Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ PATCH ΠΎΡ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
DELETE /:entity/:id β ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 204 No Data Ρ ΠΏΡΡΡΡΠΌ ΡΠ΅Π»ΠΎΠΌ, Ρ.ΠΊ. Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΆΠ΅ Π½Π΅ΡΠ΅Π³ΠΎ.
ΠΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, Ρ.Π΅. ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ DELETE Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π°Π΄ΡΠ΅ΡΠΎΠΌ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ 404.
OPTIONS /:entity[/:id]
ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡ URI.
Π‘Π΅ΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ²Π΅ΡΠΈΡΡ 200 OK Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ
ΠΠ΅ΠΊΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΎΡΠ²Π΅ΡΡ ΡΠΎ ΡΡΠ°ΡΡΡΠ°ΠΌΠΈ 4Ρ Ρ (ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°) ΠΈΠ»ΠΈ 5Ρ Ρ (ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°). ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π΅ΡΡΡ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅Π»Π΅ ΠΎΡΠ²Π΅ΡΠ° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ text/plain (Π±Π΅Π· Π²ΡΡΠΊΠΎΠ³ΠΎ JSON). Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΡΠ²Π΅ΡΠ°
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ html Π΄Π»Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π² api β ΡΠ°ΠΊ ΡΠ΅Π±Π΅ ΠΈΠ΄Π΅Ρ, Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Ρ.Π΄. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΠ°ΠΌ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΠΎΡΠΎΡΠΌΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΈ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠ΄Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ. Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π½Π°Π»ΠΈΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ 401 Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ HTTP-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½Π½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡΡΡ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° react ΠΈΠ»ΠΈ electron.
UPD ΠΏΠΎ ΠΌΠΎΡΠΈΠ²Π°ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². ΠΠ»ΠΈΠ΅Π½ΡΡ Ρ Π²Π°Ρ Π±ΡΠ΄ΡΡ ΡΠ°Π·Π½ΡΠ΅: Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅Π± ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠΊΠΈ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΊΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ² (CI), Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Ρ Π°Π΄ΠΌΠΈΠ½ΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ ΠΎΡΡ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ (Ρ.Π΅. ΡΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΊΠΎΠ΄Ρ) ΠΈ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π½Π΅ Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈΠ·-Π·Π° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π°ΠΌΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ use-case, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π°ΠΊΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ 404 ΠΈΠ»ΠΈ 410, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΡΠ»ΠΈΡΠΈΠΉ 404 ΠΎΡ 200 ΠΈΠ»ΠΈ 500 β Π²Π°Π³ΠΎΠ½ ΠΈ ΡΠ΅Π»Π΅Π³Π°.
400 Bad Request
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ΅Π½ Π·Π°ΠΏΡΠΎΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
403 Forbidden
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π΅ΡΡΡ ΡΡΡΡΠΊΠ° Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌΠΈ ΠΏΡΠ°Π²Π°ΠΌΠΈ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅Π»ΠΎΠ³ΠΈΠ½ΠΈΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ 419
404 Not Found
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π² Π·Π°ΠΏΡΠΎΡΠ΅ Π±ΡΠ» ΡΠΊΠ°Π·Π°Π½ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ entity ΠΈΠ»ΠΈ id Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Π‘ΠΏΠΈΡΠΎΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ get Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΡΠΈ Π²Π΅ΡΠ½ΠΎΠΌ entity (ΡΠΌ. Π²ΡΡΠ΅).
ΠΡΠ»ΠΈ Π·Π°ΠΏΡΠΎΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ 418.
415 Unsupported Media Type
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ°ΡΠΏΠ°ΡΡΠΈΡΡ JSON Π·Π°ΠΏΡΠΎΡΠ°, ΠΈΠ»ΠΈ ΡΠ°ΠΌ Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΈΡΡΠ» Π½Π΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON.
418 I’m a Teapot
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π΄Π»Ρ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π΄Π°ΠΆΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, ΡΠΈΠΏΠ° ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ URI, Π»ΠΈΠ±ΠΎ ΡΡΠΎ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
419 Authentication Timeout
ΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΡΡ Π»ΠΈ ΠΊΡΠΊΠΈ ΠΈΠ»ΠΈ CSRF ΡΠΎΠΊΠ΅Π½Ρ). ΠΡΠΈ ΡΡΠΎΠΌ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΊΠΈΠ½ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ.
422 Unprocessable Entity
ΠΠ°ΠΏΡΠΎΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½, Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ° Π½Π΅ ΠΏΡΠΎΡΠ»ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ΅Π»Π΅ Π·Π°ΠΏΡΠΎΡΠ° Π±ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎΠ»Ρ, ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΠΈΠ»ΠΈ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΠΏΠΎΠ»Π΅ΠΉ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Π² Π²Π²Π΅Π΄ΡΠ½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΉ.
500 Internal Server Error
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²ΡΠ»Π΅ΡΠ΅Π»ΠΎ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° Π΄ΡΡΠ³Π°Ρ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΡΡΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ console.error(err) Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ ΡΠΎΠ²Π°ΡΠΈΡΠ΅ΠΉ (Π°Π΄ΠΌΠΈΠ½ΠΎΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ²).
501 Not Implemented
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ (Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½) ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΡ Π²ΠΎΡ, Π² ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ, ΠΈ Π²ΡΡ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!