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 санҷед.