⊗ppSpAiRs 52 of 83 menu

REST API in PHP

Esistono approcci speciali che standardizzano le API per la comodità generale sia degli sviluppatori delle API, sia dei loro utenti.

Uno di questi approcci è REST API. La sua idea fondamentale è che per le operazioni CRUD è necessario utilizzare vari metodi del protocollo HTTP.

Per ottenere dati - il metodo GET, per creare dati - il metodo POST, per modificare dati - il metodo PUT, per eliminare dati - il metodo DELETE.

Ad esempio, consideriamo una certa API che manipola gli utenti. Diamo un'occhiata a come appariranno gli URL per varie azioni.

Ottenere tutti gli utenti:

GET http://api.loc/users/

Ottenere un utente tramite il suo id:

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

Creare un utente:

POST http://api.loc/user/

Modificare un utente tramite il suo id:

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

Eliminare un utente tramite il suo id:

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

Diamo un'occhiata a come REST API viene implementato in PHP. C'è un piccolo problema qui. Il fatto è che sia PHP che CURL supportano solo i metodi GET e POST:

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

Pertanto, per implementare REST API, dovremo ricorrere a un trucco. L'essenza di questo trucco è che in realtà i dati verranno trasmessi solo tramite i metodi GET e POST, ma noi simuleremo il funzionamento di altri metodi tramite un'intestazione HTTP personalizzata. Chiamiamola, ad esempio, HTTP-X-HTTP-METHOD.

Quindi potremo ottenere il contenuto di questa intestazione nel modo seguente:

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

Ora possiamo scrivere l'implementazione dell'API:

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

Implementare una REST API per i prodotti di un negozio online.

Verificare il funzionamento dell'API implementata utilizzando la libreria CURL.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta