⊗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-ის საკუთარი (custom) ჰედერის მეშვეობით. მოდით, დავარქვათ მას, მაგალითად, 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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა