REST API-ն PHP-ում
Գոյություն ունեն հատուկ մոտեցումներ, որոնք ստանդարտացնում են API-ն՝ հանուն ինչպես API-ի մշակողների, այնպես էլ դրա օգտագործողների ընդհանուր հարմարության:
Այդպիսի մոտեցումներից մեկը REST API-ն է: Դրա հիմքում ընկած է այն գաղափարը, որ CRUD գործողությունների համար անհրաժեշտ է օգտագործել HTTP պրոտոկոլի տարբեր մեթոդներ:
Տվյալներ ստանալու համար՝ GET մեթոդ, տվյալներ ստեղծելու համար՝ POST մեթոդ, տվյալներ փոփոխելու համար՝ PUT մեթոդ, տվյալներ ջնջելու համար՝ DELETE մեթոդ:
Օրինակի համար դիտարկենք որոշ API, որը կառավարում է օգտատերերին: Տեսնենք, թե ինչպես կտեսքավորվեն URL-ները տարբեր գործողությունների համար:
Ստանում ենք բոլոր օգտատերերին:
GET http://api.loc/users/
Ստանում ենք մեկ օգտատեր նրա id-ով:
GET http://api.loc/user/1/
Ստեղծում ենք օգտատեր:
POST http://api.loc/user/
Փոփոխում ենք օգտատերին նրա id-ով:
PUT http://api.loc/user/1/
Ջնջում ենք օգտատերին նրա id-ով:
DELETE http://api.loc/user/1/
Տեսնենք, թե ինչպես է REST API-ն իրականացվում PHP-ում: Այստեղ կա որոշակի խնդիր: Բանն այն է, որ և PHP-ն, և CURL-ը աջակցում են միայն GET և POST մեթոդները:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // միայն GET և POST
?>
Հետևաբար, REST API-ն իրականացնելու համար
ստիպված կլինենք դիմել հնարքի: Դրա էությունը կայանում է նրանում,
որ իրականում տվյալները կփոխանցվեն
միայն GET և POST մեթոդներով, բայց մենք
կիմիտացնենք այլ մեթոդների աշխատանքը
օգտագործելով հատուկ HTTP վերնագիր:
Անվանենք այն, օրինակ, HTTP-X-HTTP-METHOD:
Այդ դեպքում մենք կկարողանանք ստանալ այդ վերնագրի պարունակությունը հետևյալ կերպ.
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Այժմ մենք կարող ենք գրել API-ի իրականացում.
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
switch ($method) {
case 'GET':
// ...
break;
case 'POST':
// ...
break;
case 'PUT':
// ...
break;
case 'DELETE':
// ...
break;
}
?>
Իրականացրեք ինտերնետ խանութի ապրանքների REST API-ն:
Ստուգեք իրականացված API-ի աշխատանքը CURL գրադարանի օգնությամբ: