API покоя: Что нужно для начала различать REQUEST_METHOD или PATH_INFO?

Я работаю над небольшим 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 possibleREQUEST_METHOD`.

-1

Решение

Если вы хотите, чтобы все было просто и понятно. Тогда я бы предпочел следующее

$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();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]