⊗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štinaDanskDeutschEnglishEspañ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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη