⊗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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј