@DiaTMss

Для чего нужен REST?

Доброго времени суток уважаемые программисты. Для чего нужен REST?

Допустим у меня на сервере php может обработать GET, POST и вроде всё норм. Ну зачем PUT, PATCH, DELETE, OPTIONS для организации типа CRUD как в базах данных например mysql INSERT, DELETE, UPDATE, SELECT. REST влияет на производительность обработки запросов если разделить или это для удобства использования api?

$router->get($uri, $callback);
   $router->post($uri, $callback);
   $router->put($uri, $callback);
   $router->patch($uri, $callback);
   $router->delete($uri, $callback);
   $router->options($uri, $callback);


https://habr.com/ru/post/265845/
  • Вопрос задан
  • 622 просмотра
Решения вопроса 2
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Это просто стандарт, один из многих. Нужен он в первую очередь для того чтобы люди понимали друг-друга максимально точно, как и со всеми остальными контрактами.
В концепции REST:
POST - только для создания ресурсов
PUT - для перезаписи ресурсов
DELETE - для удаления ресурсов
а OPTIONS это просто спецификация HTTP и он для preflight запросов чтобы узнат ьможно ли клиенту выполнять операцию

REST никак не влияет на производительность
Ответ написан
tumbler
@tumbler
бекенд-разработчик на python
REST - это набор соглашений о том, как реализовывать API поверх HTTP. Оно включает как кучу деталей собственно интерфейса, так и принципы работы серверной части (идемпотентность, отстутствие состояния и прочее). Нужно это для того, чтобы при организации взаимодействия с очередным сервисом не реализовывать очередной набор костылей, а воспользоваться имеющимся.
В качестве примеров проблем, решаемых подходом REST можно выделить следующие:
  • различие в схемах запросов (например, создание одного объекта через POST JSON а-ля RPC вконтакте с указанием метода, а создание другого - через GET причем с телом XML)
  • различие в сообщениях об ошибке (HTTP 200 OK {"message": "internal server error"})
  • различие в форматах ответов (без query-параметра id=1 возвращается список всех объектов, с query-параметром - словарь, содержащий один объект)

Про stateless пример привести не могу, не сталкивался в этом веке с такими API.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы