??? ????? REST API ? ??? ?? ????????
??? ????? REST API ? ??? ?? ????????
REST API ???????????? ????? ????????????? ???????? ??? ?????????? ???-????????, ?????????????? ??????????? ???????????? ?????????? ????? ????????. ?????????? REST ???????????? ??? Representational State Transfer. API ???????? ??????????? ????? ??????? ??????????? ????????. REST API ?????????? ???????????? HTTP-????????? ??? ???????? ?????????? ????? ???????? ? ????????. ?????? ?????????? ?????? ?? ??????, ???????? ????????? ?????? ? ????????. ?????? ???????????? ?????? ?????? ???? ??????? ? ?????????? ????? ? ?????????????? ????, ???? ????? ? JSON ??? XML.
????? ????????? API ? ??? ?????????? ???????? ???????
API ????????????? ???????????? ????? ???????????? ????????? ??? ??????????? ????? ?? ????????? ????????. ???????????? ????????? API ??? ??????????? ??????? ????????, ???????? ????? ? ???????. ????????? ????????? ?????? ????????? ?????????? ?? ????????????????? ??????????? ????? API, ? ?? ?????? ??????????? ???? ????????????.
???????? ??????????? ????? API ?????????????? ?? ????? ??????-?????. ?????????? ?????????? ?????????? ?????? ? ??????? ? ??????????? ??????? ? ????????. ?????? ???????????? ?? ?????? ?? ?????????? ??????, ??????????? ????????? ??????. ?????? ????????? ??????, ???????????? ????? ??????? ? ????????? ????????.
????? ????????? ?????? ?????????? ????? ? ?????????????? ??????????? ??? ?????????? ? ?????? ????????. ????? ?????????? ??????? ? ????????????????? ???????. ?????????? ?????????? ?????????? ???????? ?????? ??? ?????? ???????? ????????????.
API ???? ??????? ??????? ???????, ??? ?????? ??????? ????????? ?????????? ??????. ?????? ??????????? ?????? ???? ???????? ????????, ???????????? ? ????????? ???????????? ?????. ??????????? ????????? ????????? ?????? ??????? ??? ??????? ?? ?????? ????????.
??? ????? REST ? ??? ???????? ????????
REST ???????? ????????????? ??????, ??????????????? ???????? ????? ? ?????? ??? ???????????? ?????????????? ???-????????. ??? ??????? ?????????? ????????? REST ? ????? ??????????? ? 2000 ????. ??????????? REST ???????????? ?? ?????????????? ???????????? ?????????? ? ???? ?????????, ?????? ????? HTTP.
REST ?????? ??????? ??? ???????? ???????? ???????. ?????? ?????? ???????? ?????????? ????????????? ? ??????? URL. ??????? ???????? ? ????????? ????? ??????? ????????, ?? ????????? ?? ?????????? ????????????? ???????. ????? ?????? ??????????? ??????????????? ?????????? ? ???????? ??????????? ????????????? ????????.
???????? ??????? REST ?????????? ????????? ??????:
- ???????????? ?????????? — ??????????????????? ?????? ?????????????? ? ????????? ????? HTTP-??????
- ??????-????????? ????????? — ????????????? ???????????? ????? ???????? ? ????????
- ?????????? ????????? — ?????? ?????? ???????? ??? ?????? ?????????? ??? ??????????
- ??????????? — ??????????? ?????????? ??????? ??? ????????? ??????????????????
- ?????????????? ??????? — ??????????? ????? ???????? ?????????????? ?????? ??? ??????? ?? ???????
?????????? ?????? REST ????????? ??????? ????????, ?????????????? ? ????? ?????????????? ???-??????? ??? ?????? ??????????.
??????-????????? ????? ? ????????????? ??????
??????-????????? ??????????? ????????? ??????? ?? ??? ??????????? ?????? ? ?????????? ?????????. ?????? ???????? ?? ???????????????? ????????? ? ??????????? ????????. ?????? ????????? ??????????? ????????, ??????-??????? ? ??????????? ????????. ???????? ????????????? ?????? ?????? ???? ????????? ?????????? ??????????.
?????????? ??????? ???????????? ?? ?????????????? ? ?????????????. ?????????? ???????? ??????, ????????? ??????? ? ?????????? ?????. ?????? ????? ???? ???-?????????, ????????? ??????????? ??? ?????????? ???????????. ?????? ??????? ????????????? ? ????? ???????? ????? ????? API.
????????? ????????? ??????????????? ?? ????????? ??????-?????? ? ?????????? ??????????. ?????? ????????? ?????????? ???????, ????????? ???????, ???????? ? ?????? ?????? ? ?????????? ??????. ???????????????? ?????????? ?????? ????????? ???????? ??????????? ? ???????????? ??????????? ????????.
????????????? ??????????????? ???????? ???????? ???????. ???????????? ???????????? ????????? ??? ?????? ????????? ??????. ?????????? ????????? ?????????? ?? ???????????? ?????? ?? ???? ?????????? ??????????. ?????? ?????? ???????? ?????????? ? ????????? ??????????? ???????????.
??????? stateless ? ?????????? ?????????? ?????????
??????? stateless ????????, ??? ?????? ?? ????????? ?????? ? ??????? ???????? ???????. ?????? ?????? ???????? ??? ??????????? ???????? ??? ??????????. ?????? ?? ????????? ?????????? ?? ?????????? ?????????????? ??? ???????? ??????. ????? ?????? ???????? ?????? ?????? ??????????? ? ???????? ????????????.
?????????? ????????? ?? ??????? ????????? ???????? ?? ?????? ? ?????????. ??????? ?? ?????????? ????????????? ??????? ??? ???????? ?????? ????????. ??????? ????? ???????????, ??????? ????? ??????? ??? ???????????? ?????????. ?????? ?????? ? ???????? ????????? ?????? ?? ??????? ???????.
?????? ???????????? ?????????? ?????????. ?????? ?????? ???????? ?????? ??????????????, ?????????????? ?????? ? ??????????? ????????. ?????????? ?????????? ????????? ?????? ? ??????? ????????? ???????????? ? ???????? ?? ??? ???????????. ????????????? ???????????? ??????? ??????? ?????????? ? ???????.
Stateless-??????????? ???????? ????????? ? ????????????. ?????????? drgn ????????? ?????? ?????? ????????? ?? ?????????? ??????????????. ????????????? ????? ?????? ??????????? ???????, ????????? ??????? ?? ????????? ???????????? ?????????? ?????????.
HTTP-??????: GET, POST, PUT, DELETE
HTTP-?????? ?????????? ??? ????????, ??????? ?????? ????????? ? ???????? ?? ???????. REST API ????????? ??????????? ?????? ????????? HTTP ??? ????????????, ??????????, ???????????? ? ???????? ??????. ?????? ????? ????? ?????? ?????????? ? ????????.
????? GET ???????????? ??? ?????????? ?????????? ? ???????. ?????? GET ?? ?????? ????????? ??????? ? ?????????? ??????????. ?????? ?????????? GET ??? ????????? ???????? ? ?????????????, ??????? ??? ?????? ?????????. ????????? ?????? ???? ?????????? ? URL-?????? ????? ????? ???????.
????? POST ?????????? ????? ?????? ?? ???????. ?????? ???????? ?????? ? ???? ???????, ? ?????? ????????? ?????????? ? ????????? ??????. POST ???????????? ??? ??????????? ?????????????, ???????? ????????? ? ??????? ??? ?????????? ????????????.
????? PUT ???????????? ????????? ?????? ?????????. ?????? ?????????? ????? ???????? ?????????? ??? ??????? ??????????? ?????????. PUT ??????????? ??? ?????????????? ??????? ???????????? ??? ????????????? ??????????. ???? ?????? drgn ?? ???????, PUT ????? ??????? ?????? ????????.
????? DELETE ??????? ?????? ? ???????. ?????? ?????????? ????????????? ???????? ??? ????????.
????????? ???????: URL, ????????? ? ??????????
HTTP-?????? ? REST API ??????? ?? ?????????? ???????????, ?????? ?? ??????? ????????? ???????????? ???????. ?????????? ??????????? ??????? ??????????? ?????????? ?????????? ?? ????? ??????? ? ????????? ?????????? ?????.
URL-????? ????????????? ???????????? ??????? ?? ???????. ????? ???????? ????????, ???????? ???, ???? ? ??????? ? ???????????? ????????? ???????. ??????? ??? ??????? ???????? ??? ????????? ? ????????????? ????????????? ???????. ????????? ??????? ?????? ?????? ?????? ?????????????? ??????? ?????????? ??? ?????????????? ??????????.
????????? ??????? ???????? ?????????? ? ???????????? ??????. ??????? ?????? ???????? ????????????? ??????????:
- Content-Type — ?????????? ??? ???????? ? ?????????? ???????, ???????? application/json
- Authorization — ???????? ????? ??? ??????????????? ???????? ??? ??????????? ????????????
- Accept — ?????????? ???????????????? ?????? ?????? ?? ???????
- User-Agent — ?????????? ?????????? ??????????, ?????????? ??????
?????????? ??????? ???????? ??????????, ???????????? ?? ?????? ??? ?????????? ??????? POST, PUT ??? PATCH. ?????? ? ???? ????????????? ???????? ?????????? ? ?????? ???? ???????????. ?????????? ????? ???????? ?????? ?????? ???? ??? ???????????? ?????? ????????????, ???????????? ???????? ??? ???????? ????? ?? ??????.
???? ??????????: JSON ? XML
REST API ????????? ?????????????? ???? ??? ???????? ?????????? ????? ???????? ? ????????. ??? ????? ?????????? ??????? — JSON ? XML. ??????? ???????????? ?? ?????????? ??????? ? ????????????? ? ?????????? ???????????.
JSON, ??? JavaScript Object Notation, ?????????? ?????????? ? ??????? ??? ????-????????. ?????? ?????????? ????????????? ? ????????? ??????????. JSON ???????????? ???????? ???? ??????: ??????, ?????, ?????? ????????, ??????? ? ???????. ??????????? ?????? ???????????????? ???????? ??????????????? ???????? ??? ?????????????? ? JSON.
????? JSON ???????? ?????????? ?????? ???????????? ????????. ????????? JSON ??????????? ???????, ??? ??????? ???????? ?? ?????????? ??????????. ????????? ????? ? ????? ??? ?????????????. ?????? ??????????? ?????????? ??? ?????????? ???-?????????? ? ????????? ??????????.
XML, ??? eXtensible Markup Language, ????????? ??????????? ??????????? ? ???????????? ? ???????????? ??????. ?????? ???????????? ????????, ???????????? ???? ? ????? ?????????. XML ??????????? ??????? ????????? ? ???????? ???????????. ?????? drgn ???????????? ? ?????????????? ???????? ? legacy-???????????, ????????? ??????? ???????? ??????.
???? ??????? ??????? ? ?????????? ??????
?????? ????????????? HTTP-???? ????????? ??? ?????????? ??????? ? ?????? ?????????? ???????. ???? ??????? ?? ???? ?????????, ?????? ????????? ?? ???????????? ??? ??????. ?????????? ????????? ????? ????????? ??????????? ?????????? ????????? ???????? ?? ????????? ??????????????.
???? ?????? 2xx ????????????? ?? ??????? ????????? ???????. ??? 200 ?????????? ???????? ?????????? ????????. ??? 201 ????????? ?? ???????? ?????? ???????. ??? 204 ?????????? ?? ??????? ?????????? ??? ???????? ??????????.
???? ????????? 3xx ????????????? ? ????????????????. ??? 301 ?????????? ?? ???????????? ??????? ???????. ??? 304 ????????, ??? ?????? ?? ????????? ? ??????? ??????????? ???????. ?????? ????? ???????????? ???????????? ?????? ????????.
???? ?????? 4xx ?????????? ?????????? ?? ????? ???????. ??? 400 ?????????? ?? ???????????? ?????? ???????. ??? 401 ???????????? ???????????. ??? 403 ????????? ?????? ? ???????. ??? 404 ???????? ?? ?????????? ?????????????? ???????.
???? ?????? 5xx ?????????? ?? ?????? ???????. ??? 500 ?????????? ?????????? ?????????. ??? 503 ??????????? ? ??????????????? ?????????????. ?????????? ?????????? ?????? ?????? ??????? ???????????? ?????????? ? ????????????? ???????? ????????? ????????????.
