Web API предоставляет API, основанный на REST.Веб-API использует шаблоны MVC и будет очень знаком разработчикам ASP.NET MVC.Web API может использовать возможности HTTP как протокола уровня приложения, возвращая ресурсы в нескольких представлениях (XML, JSON, HTML и т. Д.) В соответствии с заголовками запросов клиента.
С другой стороны, WCF webHttpBinding использует шаблоныWCF, и собирается обратиться больше к разработчику WCF - ServiceContracts, OperationContracts, всеобъемлющий (или лишний вес, в зависимости от того, как вы на это смотрите, файл конфигурации), возможность самостоятельного размещения за пределами IIS.
Oneиз того, что мне нравится в Web API, это возможность использовать динамические типы, чтобы избежать ограничений системы типов.Мне также нравится поведение исключений по умолчанию в Web API - контраст WCF webHttpBinding, где по умолчанию исключения всплывают как HTTP 500 + полезная нагрузка HTML (yuk!).
Приятно иметь выбор между двумя превосходными технологиямиВот.Я бы не назвал Web API «более новым» или «лучше», чем WCF, поскольку это подразумевает его замену и то, что WCF webHttpBinding является устаревшим, что я не верю в истинность.
Я выбралнедавно используйте WCF webHttpBinding для предоставления JSON API для существующей службы WCF SOAP.Я считаю, что это был хороший выбор, потому что он соответствовал этому стилю существующего решения и сводил к минимуму количество необходимых изменений.