⊗ppSpAiRs 52 of 83 menu

REST API i PHP

Det finns speciella tillvägagångssätt som standardiserar API:er för gemensam bekvämlighet för både utvecklare av API:et och dess användare.

Ett sådant tillvägagångssätt är REST API. Dess grundidé är att för CRUD-operationer bör man använda olika metoder från HTTP-protokollet.

För att hämta data - metoden GET, för att skapa data - metoden POST, för att ändra data - metoden PUT, för att ta bort data - metoden DELETE.

Låt oss som exempel betrakta ett API som manipulerar användare. Låt oss se hur URL:en kommer att se ut för olika åtgärder.

Hämtar alla användare:

GET http://api.loc/users/

Hämtar en användare efter deras id:

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

Skapar en användare:

POST http://api.loc/user/

Ändrar en användare efter deras id:

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

Tar bort en användare efter deras id:

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

Låt oss se hur REST API implementeras i PHP. Det finns ett visst problem här. Saken är den att både PHP och CURL endast stöder metoderna GET och POST:

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

Därför måste man ta till en knep för att implementera REST API. Tricket går ut på att i verkligheten kommer data att skickas endast med metoderna GET och POST, men vi kommer att imitera funktionen av andra metoder med hjälp av en anpassad HTTP-header. Låt oss kalla den, till exempel, HTTP-X-HTTP-METHOD.

Då kan vi få innehållet i denna header på följande sätt:

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

Nu kan vi skriva implementationen av API:et:

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

Implementera ett REST API för produkter i en webbshop.

Testa funktionen hos det implementerade API:et med hjälp av CURL-biblioteket.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa