⊗ppSpAiRs 52 of 83 menu

REST API i PHP

Det finnes spesielle tilnærminger som standardiserer API for felles bekvemmelighet for både utviklere av API, og dets brukere.

En slik tilnærming er REST API. Grunnideen er at for CRUD-operasjoner er det nødvendig å bruke ulike metoder fra HTTP-protokollen.

For å hente data - GET-metoden, for å opprette data - POST-metoden, for å endre data - PUT-metoden, for å slette data - DELETE-metoden.

La oss som et eksempel se på et API som manipulerer brukere. La oss se på hvordan URL-ene vil se ut for ulike handlinger.

Henter alle brukere:

GET http://api.loc/users/

Henter en bruker ved hans id:

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

Oppretter en bruker:

POST http://api.loc/user/

Endrer en bruker ved hans id:

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

Sletter en bruker ved hans id:

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

La oss se på hvordan REST API implementeres i PHP. Det er et visst problem her. Saken er at både PHP og CURL kun støtter GET- og POST-metodene:

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

Derfor, for å implementere REST API, må man bruke et lurt triks. Essensen er at i virkeligheten vil data bare bli sendt med GET- og POST-metodene, men vi vil etterligne arbeidet til andre metoder ved hjelp av en tilpasset HTTP-header. La oss kalle den, for eksempel, HTTP-X-HTTP-METHOD.

Da kan vi få innholdet i denne headeren som følger:

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

Nå kan vi skrive implementeringen av 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 produkter i en nettbutikk.

Test funksjonaliteten til det implementerte API-et ved hjelp av CURL-biblioteket.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis