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

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *