Я работаю над небольшим REST API
написано в PHP
,
Есть ли лучшая практика, чтобы решить, что должен делать сценарий?
Должен ли я сначала проверить, если запрос GET
, POST
, PUT
, DELETE
или я сначала проверяю PATH_INFO
,
Пример первой проверки PATH_INFO
:
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'],'/'))[0];
switch ($request)
{
case 'books':
if ($method = 'GET')
{
getbooks();
} elseif ($method = 'POST')
{
postbooks();
}
break;
default:
include_once('error.php');
break;
}
Пример первой проверки REQUEST_METHOD:
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'],'/'))[0];
switch ($method)
{
case 'GET':
if ($request = 'books')
{
getbooks();
} elseif ($request = 'user')
{
getuser();
}
break;
default:
include_once('error.php');
break;
}
Заранее спасибо!
Также APIwill be very limited. Mostly a path will have only one possible
REQUEST_METHOD`.
Если вы хотите, чтобы все было просто и понятно. Тогда я бы предпочел следующее
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'],'/'))[0];
if($method == "GET" && $request == "books"){
getBooks();
}elseif ($method == "POST" && $request == "books"){
addBooks();
}elseif ($method == "PUT" && $request == "books"){
updateBooks();
}elseif ($method == "DELETE" && $request == "books"){
deleteBooks();
}
Других решений пока нет …