Цель: API-интерфейс RESTful
Вопрос: Является ли метод, который у меня ниже настоящего API-интерфейса RESTful, или в нем отсутствует что-то, как мне сказали?
Этовопрос из 3 частей ..
Давайте предположим, что у меня есть проект PHP, в котором есть API, который возвращает данные в форматах XML или JSON, вы можете получить доступ к API, как показано ниже ...
server.com/article/123 | Returns ID 123 using GET
server.com/article/new | Creates a new article using POST
server.com/article/123/edit | Edits an article with the ID 123 using POST
server.com/article/123/delete | Deletes article with ID 123 using POST
1)
Я всегда читал также, что PUT
должен использоваться для редактирования объектов, ниже я помещаю слово POST
, поскольку пользователь отправляет POST
в URI для tht длядействие удаления, должен ли я использовать PUT
в php, используя вместо этого что-то подобное?
$_PUT = array();
if($_SERVER['REQUEST_METHOD'] == 'PUT') {
parse_str(file_get_contents('php://input'), $_PUT);
}
2)
Мне сказали в вопросе, который я написал на SOНекоторое время назад, что это похоже на RESTful API, но это не так, ответ, который я получил, был следующим:
In short, your service is not RESTful, but it is close. Rather than specify actions (edit, delete, ...) in URL segments, you will want to make use of HTTP verbs (GET, PUT, POST, DELETE).
Либо парень не знал, кто он такойговорить или я НЕ ПОЛУЧАЮ ЭТОГО, прочитав бесчисленные статьи на эту тему и сравнив каждый API, который я могу найти, как яМой пример выше НЕ RESTful?
Я хотел бы создать API RESTful, пожалуйста, помогите мне исправить приведенный выше пример, если это необходимо?
3)
Такжепри условии, что я планирую вернуть пользователю ответ JSON с чем-то вроде этого ...
<?php
header('HTTP/1.1 200 OK');
header('Content-type: application/json');
$data = // my code that returns the appropriate data;
echo json_encode($data);
?>
Это правильный способ вернуть результат пользователю или я что-то упустил?Многие статьи и вопросы говорят о концепции, но не попадают в реальный код, как мои примеры.