⊗ppSpAiRs 52 of 83 menu

REST API PHP:ssä

On olemassa erityisiä lähestymistapoja, jotka standardoivat API:n yleiseksi hyödyksi sekä API:n kehittäjille että sen käyttäjille.

Yksi tällainen lähestymistapa on REST API. Sen perustana on ajatus, että CRUD-toimintoja varten on tarpeen käyttää erilaisia HTTP-protokollan metodeja.

Datan hakemiseen - GET-metodi, datan luomiseen - POST-metodi, datan muokkaamiseen - PUT-metodi, datan poistamiseen - DELETE-metodi.

Esimerkkinä tarkastellaan jotakin API:ta, joka manipuloi käyttäjiä. Katsotaan, miltekä URL-osoitteet eri toiminnoille näyttävät.

Haetaan kaikki käyttäjät:

GET http://api.loc/users/

Haetaan yksi käyttäjä hänen id:nsä perusteella:

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

Luodaan käyttäjä:

POST http://api.loc/user/

Muokataan käyttäjää hänen id:nsä perusteella:

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

Poistetaan käyttäjä hänen id:nsä perusteella:

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

Katsotaan, miten REST API toteutetaan PHP:ssä. Tässä on jonkin verran ongelmaa. Asia on siinä, että sekä PHP että CURL tukevat vain GET- ja POST-metodeja:

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

Sen vuoksi REST API:n toteuttamiseksi täytyy käyttää oveluutta. Sen ydin on siinä, että todellisuudessa data välitetään vain GET- ja POST-metodeilla, mutta me simuloimme muiden metodien toimintaa käyttämällä mukautettua HTTP-otsaketta. Kutsukaamme sitä esimerkiksi HTTP-X-HTTP-METHOD:ksi.

Silloin voimme saada tämän otsakkeen sisällön seuraavasti:

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

Nyt voimme kirjoittaa API:n toteutuksen:

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

Toteuta verkkokaupan tuotteiden REST API.

Testaa toteutetun API:n toimintaa CURL-kirjaston avulla.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää