@driverx18

Говорят, что API социальных сетей RESTful, почему?

Для меня сложно понимание в принципе REST, плюс почитал на хабре статью что рестфул апи это ложь, вообще понятия размылись. Но на тостере я нашел вопрос где ответ был в кратце такой:

Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
1. получение данных с сервера (обычно в формате JSON, или XML)
2. добавление новых данных на сервер
3. модификация существующих данных на сервере
4. удаление данных на сервере

и еще я увидел интересные слова:
API социальных сетей - это вполне типичные примеры реализации REST API.


Ну вот из этого я по идее понял, что если к апи можно обращаться через POST, GET, PUT, DELETE - это смело называется рест апи. (Очень прошу пояснить если не так понял).
Но вот, взглянув на API VK, там нет работы с PUT и DELETE, там можно работать только с POST и GET запросами, почему же это тогда REST?
Как определить вообще REST API от не-REST API?
Читал много статей, нифига не понял толком. Что стоит вообще почитать для того, чтобы разработать своё API (PHP)?
  • Вопрос задан
  • 632 просмотра
Пригласить эксперта
Ответы на вопрос 2
nazarpc
@nazarpc
Open Source enthusiast
https://ru.wikipedia.org/wiki/REST

В отличие от веб-сервисов (веб-служб) на основе SOAP, не существует «официального» стандарта для RESTful веб-API. Дело в том, что REST является архитектурным стилем, в то время как SOAP является протоколом. Несмотря на то, что REST не является стандартом сам по себе, большинство RESTful-реализаций используют стандарты, такие как HTTP, URL, JSON и XML.

Я использую не только POST, GET, PUT, DELETE методы в своих API, но и дополнительные кастомные, например, если устанавливается какой-то компонент в системе я отправляю запрос методом INSTALL, если удаляю то UNINSTALL, когда нужно зарегистрировать пользователя то метод будет REGISTRATION, а когда получить права доступа пользователя то GET_PERMISSIONS.

В итоге получается подобная однообразная структура API с которой очень легко и естественно работать:
GET api/users/1
UPDATE api/users/1
CHANGE_PASSWORD api/users/1
GET api/users/1/persmissions
DELETE api/users/1
REGISTRATION api/users
SEARCH api/users

Так же имеется стандартизированный формат ответов когда во время обработки запроса возникают ошибки.

В wiki об этом написано более формально(пункты 1-5), но поскольку требования достаточно общие то реализации существенно отличаются и ничего с этим не поделать.
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
API позволяет в принципе работать с чем-либо.
А один из важных нюансов restful - каждый запрос независим и самодостаточен.
То есть, если знаешь как запросить данные, ты делаешь это одним запросом, а не последовательностью.
Сам запрос - интуитивно понятен, ну как-то так
get www.site.com/server/players/online
get www.site.com/server/players/registered
get www.site.com/character/rogue/stat
get www.site.com/character/rogue/classes
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы