⊗ppSpAiRs 52 of 83 menu

REST API PHP

Egzistuoja specialūs metodai, standartizuojantys API bendram patogumui tiek API kūrėjams, tiek jo naudotojams.

Vienas iš tokių metodų yra REST API. Jo pagrindas yra idėja, kad CRUD operacijoms būtina naudoti įvairius HTTP protokolo metodus.

Duomenų gavimui - GET metodas, duomenų sukūrimui - POST metodas, duomenų keitimui - PUT metodas, duomenų ištrynimui - DELETE metodas.

Pavyzdžiui, panagrinėkime tam tikrą API, valdančią vartotojus. Pažiūrėkime, kaip atrodys URL skirtingiems veiksmams.

Gauname visus vartotojus:

GET http://api.loc/users/

Gauname vieną vartotoją pagal jo id:

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

Sukuriame vartotoją:

POST http://api.loc/user/

Keičiame vartotoją pagal jo id:

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

Triname vartotoją pagal jo id:

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

Pažiūrėkime, kaip REST API realizuojamas PHP. Čia yra tam tikra problema. Faktas yra tas, kad ir PHP, ir CURL palaiko tik GET ir POST metodus:

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

Todėl REST API realizavimui teks naudotis gudrybe. Jos esmė ta, kad realiai duomenys bus perduodami tik GET ir POST metodais, bet mes imituosime kitų metodų veikimą naudodami nestandartinį HTTP antraštę. Pavadinkime ją, pavyzdžiui, HTTP-X-HTTP-METHOD.

Tada mes galėsime gauti šios antraštės turinį taip:

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

Dabar galime parašyti API realizaciją:

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

Realizuokite internetinės parduotuvės prekių REST API.

Patikrinkite realizuoto API veikimą naudodami CURL biblioteką.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti