2017-02-05 2 views
0

Меня спрашивали о различии между веб-API и службами RESTful, и это также интересный вопрос для меня. С моей точки зрения, единственная возможная разница между сервисом RESTful и веб-API может рассматриваться как то, что службы RESTful по своей сути должны быть безстоящими (хотя мы можем использовать файлы cookie), в то время как концепция неотъемлемо апатридов не применяется к веб-API поскольку мы можем использовать сеансы (не могут использоваться в службе RESTful).Веб-API против RESTful-сервисов

Однако я решил опубликовать этот вопрос, чтобы узнать, есть ли какие-либо другие потенциальные различия, которые отличают эти две технологии друг от друга.

ответ

5

Вы сравниваете рамки программирования и парадигму дизайна. Это не справедливое сравнение.

Веб-API - это рамочная программа для веб-сервисов. Вы можете использовать, используя REST API, но у вас нет есть. Вы можете также писать в нем службы RPC-стиля или действительно просто любое приложение, которое говорит HTTP, но не (строго) придерживается принципов REST.

+0

Да, это кажется правильным, но вы считаете, что интерфейс RESTful, написанный в Web API (поскольку он по своей сути поддерживает сеансы/файлы cookie), необязательно должен быть апатридом? – Arrrr

+0

[Нет. Как только вы используете состояние, например сеансы, у вас больше нет службы REST] (http://stackoverflow.com/questions/6068113/do-sessions-really-violate-restfulness). – CodeCaster

+0

Хорошо, сделайте вывод, что, как вы сказали, концепция дизайна НЕ должна смешиваться с средой разработки. :) – Arrrr

2

ОТДЫХ - это всего лишь архитектурный стиль. Это не какой-либо протокол или структура. Вы можете внедрять сервисы RESTful, используя множество фреймворков и языков программирования. Веб-API является одним из них для .NET.

Это правда, что службы RESTful не имеют гражданства. Вот список основных REST ограничений:

  • клиент-сервер
  • Stateless
  • Cache
  • Единый интерфейс
  • Многоуровневая система
  • Code-On-Demand

Для получения дополнительной информации о архитектуре REST я рекомендую Roy Fielding ' в соответствии с этим link.

Возвращаясь к вашим сомнениям, вы можете реализовать службу RESTful с помощью веб-интерфейса API, но только если вы будете следовать правилам архитектурного стиля REST.

Смежные вопросы