??? ????? REST API ? ??? ?? ????????
??? ????? REST API ? ??? ?? ????????
REST API ?????????? ????? ????????????? ??????? ??? ?????????? ???-????????, ??????????? ??????????? ?????????? ??????????? ????? ????????. ?????????? REST ???????????????? ??? Representational State Transfer. API ????????? ????????? ????? ??????? ???????????? ????????. REST API ????????? ????????????? HTTP-????????? ??? ???????? ?????? ????? ???????? ? ????????. ?????? ?????????? ?????? ?? ??????, ????????? ??????????? ?????? ? ????????. ?????? ????????? ?????? drgn ? ????????????? ????? ? ?????????????? ???????, ???? ????? ? 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!