⊗ppSpAiRs 52 of 83 menu

REST API i PHP

Der findes specielle tilgange, der standardiserer API for fælles bekvemmelighed for både API-udviklere og dets brugere.

En af sådanne tilgange er REST API. Dens grundlag er ideen om, at for CRUD-operationer er det nødvendigt at bruge forskellige metoder fra HTTP-protokollen.

For at hente data - metoden GET, for at oprette data - metoden POST, for at ændre data - metoden PUT, for at slette data - metoden DELETE.

Lad os som et eksempel betragte et API, der håndterer brugere. Lad os se på, hvordan URL'en vil se ud for forskellige handlinger.

Henter alle brugere:

GET http://api.loc/users/

Henter en enkelt bruger ved deres id:

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

Opretter en bruger:

POST http://api.loc/user/

Ændrer en bruger ved deres id:

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

Sletter en bruger ved deres id:

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

Lad os se på, hvordan REST API implementeres i PHP. Der er et vist problem. Faktum er, at både PHP og CURL kun understøtter GET- og POST-metoderne:

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

Derfor bliver vi nødt til at ty til et trick for at implementere REST API. Essensen er, at data i virkeligheden kun vil blive sendt via GET- og POST-metoderne, men vi vil efterligne arbejdet med andre metoder ved hjælp af en brugerdefineret HTTP-header. Lad os kalde den for eksempel HTTP-X-HTTP-METHOD.

Så vil vi være i stand til at få indholdet af denne header på følgende måde:

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

Nu kan vi skrive implementeringen af API'et:

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

Implementer REST API for varer i en webshop.

Test virkningen af det implementerede API ved hjælp af CURL-biblioteket.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis