Когда использовать WCF REST и WEB API

Меня немного смущают эти две технологии, т. е. WCF REST и веб-API asp.net. Есть ли разница между этими двумя? Когда следует использовать один над другим?


person sreejith    schedule 17.03.2016    source источник


Ответы (3)


Я немного смущен этими двумя технологиями, т.е. WCF REST и asp.net WEB API. Есть ли разница между этими двумя?

Да. Оба являются средством предоставления услуг в стиле REST, однако конкурирующие технологии не созданы равными.

WCF REST, естественно, происходит из мира WCF, который изначально был SOAP. WCF REST меняет это, предоставляя рудиментарную полезную нагрузку JSON вместо SOAP. Однако в WCF REST отсутствуют некоторые функции, и Microsoft заявила, что новые функции REST появятся только в веб-API ASP.NET.

В отличие от WCF REST, веб-API ASP.NET изначально был разработан для служб JSON в стиле REST.

MSDN:

Хотя WCF обеспечивает некоторую поддержку написания служб в стиле REST, поддержка REST в веб-API ASP.NET является более полной, и все будущие улучшения функций REST будут реализованы в веб-API ASP.NET. . Если у вас есть служба WCF и вы хотите предоставить дополнительные конечные точки REST, используйте WCF и привязку WebHttpBinding. – Подробнее

OP:

Когда следует использовать один над другим?

  • Если вы намерены создать службы SOAP или у вас есть существующая служба WCF, используйте WCF с конечной точкой кодирования JSON.

  • Если вы намерены создавать службы REST, особенно в новом приложении, используйте веб-API ASP.NET.

person MickyD    schedule 17.03.2016
comment
@MicikyD спасибо за ответ. Не могли бы вы объяснить, какие функции REST не поддерживаются в WCF REST? - person sreejith; 18.03.2016
comment
Более подходит для доступа из различных браузеров, мобильные устройства и т. д., обеспечивающие широкий охват. WCF REST не так уж и много. WCF не поддерживает WebSockets; или JQuery; не может быть интегрирован с SignalR. - person MickyD; 18.03.2016

Это зависит от того, что вы хотите сделать для выбора одного из них

В основном с помощью WCF вы можете создавать приложения на основе служб, но с помощью ASP.NET Web Api вы можете создавать службы Restful на основе Http или Https.

person Arif Emre Gürsoy    schedule 17.03.2016
comment
Мой вопрос связан с WCF REST и asp.net WEB API, а не с обычным сервисом wcf. - person sreejith; 17.03.2016
comment
Это не отвечает на вопрос. Также but with ASP.NET Web Api you can create Restful services based on Http or Https можно применить к WCF REST - person MickyD; 18.03.2016

REST и WCF — это понятия из разных миров :) REST — это спецификация (другими словами, набор соглашений) для разработки веб-сервисов. REST не зависит от какой-то специальной технологии/платформы/фреймворка или языка. WCF — это подход Microsoft к веб-сервисам, изначально предопределенный для разработки SOAP-сервисов, основанных на RPC-архитектуре. RPC (удаленный вызов процедур) — это подход к разработке веб-сервисов в виде набора методов с параметрами, выполняющих определенную работу. REST больше ориентирован на HTTP, и основная концепция заключается в том, чтобы работать с некоторыми сущностями (передача репрезентативного состояния) и выполнять действия с этими сущностями, а не просто вызывать какие-то методы. Можно создать какой-нибудь REST-сервис с использованием технологии WCF, но, на мой взгляд, WCF не подходит для этой цели.

person n.prokhorov    schedule 17.03.2016
comment
Не могли бы вы пролить свет на то, почему WCF не является хорошим выбором для службы REST? - person sreejith; 17.03.2016
comment
Вопрос касается не WCF и REST, а скорее WCF REST и WEB API. - person MickyD; 18.03.2016