??? ????? 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 ??????????? ? ??????????????? ???????????????????. ?????????? ????????? ?????? ?????? ??????? ????????? ???? ? ????????????? ????? ????????? ????????????.

Leave a Reply
Want to join the discussion?Feel free to contribute!