⊗ppSpAiRs 52 of 83 menu

REST API v PHP

Obstajajo posebni pristopi, ki standardizirajo API za skupno udobje tako razvijalcev API-ja kot tudi njegovih uporabnikov.

Eden takih pristopov je REST API. Temelji na ideji, da je za CRUD operacije potrebno uporabljati različne metode protokola HTTP.

Za pridobivanje podatkov - metoda GET, za ustvarjanje podatkov - metoda POST, za spreminjanje podatkov - metoda PUT, za brisanje podatkov - metoda DELETE.

Za primer razmislimo o nekem API-ju, ki upravlja z uporabniki. Poglejmo, kako bodo izgledali URL-ji za različna dejanja.

Pridobimo vse uporabnike:

GET http://api.loc/users/

Pridobimo enega uporabnika po njegovem id:

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

Ustvarimo uporabnika:

POST http://api.loc/user/

Spremenimo uporabnika po njegovem id:

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

Izbrišemo uporabnika po njegovem id:

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

Poglejmo, kako se REST API implementira v PHP. Tu je neka težava. Dejstvo je, da tako PHP kot CURL podpirata samo metodi GET in POST:

<?php $method = $_SERVER['REQUEST_METHOD']; var_dump($method); // samo GET in POST ?>

Zato bomo morali za implementacijo REST API-ja uporabiti trik. Bistvo je v tem, da se bodo podatki v resnici prenašali le z metodama GET in POST, vendar bomo posnemali delovanje drugih metod s pomočjo posebne HTTP glave. Poimenujmo jo, na primer, HTTP-X-HTTP-METHOD.

Takrat bomo lahko vsebino te glave dobili na naslednji način:

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

Zdaj lahko napišemo implementacijo API-ja:

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

Implementirajte REST API za izdelke spletne trgovine.

Preverite delovanje implementiranega API-ja s pomočjo knjižnice CURL.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni