⊗ppSpAiRs 52 of 83 menu

REST API у PHP

Існуюць спецыяльныя падыходы, стандартызуючыя API для агульнага зручнасці як распрацоўшчыкаў API, так і яго карыстальнікаў.

Адным з такіх падыходаў з'яўляецца REST API. У яго аснове ляжыць ідэя, што для CRUD аперацый неабходна выкарыстоўваць розныя метады пратакола HTTP.

Для атрымання даных - метад GET, для стварэння даных - метад POST, для змянення даных - метад PUT, для выдалення даных - метад DELETE.

Для прыкладу давайце разгледзім нейкае API, якое маніпулюе карыстальнікамі. Давайце паглядзім, як будуць выглядаць URL для розных дзеянняў.

Атрымліваем усіх карыстальнікаў:

GET http://api.loc/users/

Атрымліваем аднаго карыстальніка па яго id:

GET http://api.loc/user/1/

Ствараем карыстальніка:

POST http://api.loc/user/

Змяняем карыстальніка па яго id:

PUT http://api.loc/user/1/

Выдаляем карыстальніка па яго id:

DELETE http://api.loc/user/1/

Давайце паглядзім, як REST API рэалізуецца ў PHP. Тут ёсць некаторая праблема. Справа ў тым, што і PHP, і CURL падтрымліваюць толькі метады GET і POST:

<?php $method = $_SERVER['REQUEST_METHOD']; var_dump($method); // толькі GET і POST ?>

Таму для рэалізацыі REST API прыйдзецца ісці на хітрасць. Яе суть заключаецца ў тым, што ў рэальнасці даныя будуць перадавацца толькі метадамі GET і POST, але мы будзем імітаваць працу іншых метадаў з дапамогай кастомнага HTTP загалоўка. Назвем яго, напрыклад, HTTP-X-HTTP-METHOD.

Тады мы зможам атрымаць змесціва гэтага загалоўка наступным чынам:

<?php $method = $_SERVER['HTTP-X-HTTP-METHOD']; ?>

Цяпер мы можам напісаць рэалізацыю API:

<?php $method = $_SERVER['HTTP-X-HTTP-METHOD']; switch ($method) { case 'GET': // ... break; case 'POST': // ... break; case 'PUT': // ... break; case 'DELETE': // ... break; } ?>

Рэалізуйце REST API тавараў інтэрнэт магазіна.

Праверце працу рэалізаванага API з дапамогай бібліятэкі CURL.

Беларуская
AfrikaansAzərbaycanБългарскиবাংলাČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць