REST API in PHP
Daar is spesiale benaderings wat API standaardiseer vir die algemene gemak van beide API ontwikkelaars en die gebruikers daarvan.
Een so 'n benadering is REST API. Die basiese idee daarvan is dat verskillende metodes van die HTTP protokol gebruik moet word vir CRUD operasies.
Vir data verkryging - die GET metode, vir data skep - die POST metode, vir data verandering - die PUT metode, vir data verwydering - die DELETE metode.
As voorbeeld, laat ons 'n API oorweeg wat gebruikers manipuleer. Kom ons kyk hoe die URL's vir verschillende aksies sal lyk.
Kry alle gebruikers:
GET http://api.loc/users/
Kry een gebruiker volgens sy id:
GET http://api.loc/user/1/
Skep 'n gebruiker:
POST http://api.loc/user/
Verander 'n gebruiker volgens sy id:
PUT http://api.loc/user/1/
Verwyder 'n gebruiker volgens sy id:
DELETE http://api.loc/user/1/
Kom ons kyk hoe REST API in PHP geïmplementeer word. Daar is 'n sekere probleem. Die feit is dat beide PHP en CURL slegs die GET en POST metodes ondersteun:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // slegs GET en POST
?>
Daarom sal ons vir die implementering van REST API
'n slinkse pad moet volg. Die kern daarvan is dat
data in werklikheid slegs met die GET en POST metodes
oorgedra sal word, maar ons sal die werking van ander metodes
naboots deur 'n pasgemaakte HTTP kop te gebruik.
Kom ons noem dit byvoorbeeld HTTP-X-HTTP-METHOD.
Dan sal ons die inhoud van hierdie kop soos volg kan kry:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Nou kan ons die API implementering skryf:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
switch ($method) {
case 'GET':
// ...
break;
case 'POST':
// ...
break;
case 'PUT':
// ...
break;
case 'DELETE':
// ...
break;
}
?>
Implementeer REST API vir produkte van 'n aanlyn winkel.
Toets die werking van die geïmplementeerde API met behulp van die CURL biblioteek.