Ответ 1
Процитировать Скотта Гатри: последние несколько лет видели появление веб-API - сервисов, открытых через простой HTTP, а не через более формальный контракт на обслуживание (например, SOAP или WS *).
Так что я бы сказал нет.
Поддерживает ли WebAPI SOAP? Я пытаюсь написать SOAP-сервер в MVC4, и, хотя я могу это сделать в WCF, кажется, что WebAPI заменяет это, но я не вижу способов использовать SOAP в этом еще, просто JSON/XML, используя интерфейс стиля REST.
Процитировать Скотта Гатри: последние несколько лет видели появление веб-API - сервисов, открытых через простой HTTP, а не через более формальный контракт на обслуживание (например, SOAP или WS *).
Так что я бы сказал нет.
WEB API - это ответ Microsoft на apis на основе REST. Если вы хотите использовать SOAP, перейдите в WCF.
Вы должны рассмотреть ServiceStack, который позволяет той же службе поддерживать API REST + SOAP, хотя, поскольку SOAP работает только над HTTP POST имеет некоторые ограничения
В качестве альтернативы SOAP ServiceStack предлагает лучшую альтернативу WCF Добавить ссылку на службы, которая может генерировать типизированный API из URL-адреса, используя Добавить функцию ServiceStack Reference, встроенную в ServiceStackVS.
Интересно, что несмотря на методы WebAPI ApiController, взяв тот же RPC как WCF в использовании методов С# RPC для создания и определения чатовских веб-сервисов с тем, что они все еще не могут поддерживать свой собственный стандарт SOAP, сделанный той же компанией.
Это свидетельствует о ServiceStack основе сообщений, который предлагает многочисленные преимущества, неспособность поддерживать ту же службу для поддержки нескольких конечных точек и форматов, включая конечные точки REST, SOAP и MQ, а также создание серверных или клиентских HTML-сайтов, если вам это нужно. Вот пример богатого редактора базы данных Northwind, который, поскольку он был создан с ServiceStack, автоматически включает типизированные API REST, которые могут быть вызваны с использованием богатых родных Настольные клиенты, мобильные приложения и приложения для одной страницы.
Несмотря на поддержку SOAP для обеспечения совместимости, доступности и обратной совместимости, мы не рекомендуем для создания платформ веб-сервисов, поскольку они не обязательно сложны, хрупки, медленны и многословны, и есть много лучших альтернатив для использования. я объяснять подробнее в своем интервью в InfoQ.
WebApi не поддерживает SOAP из коробки. Но это довольно гибкая структура, и вы можете "адаптировать" ее для обработки SOAP: ничто не мешает вам вручную анализировать полученные SOAP-сообщения (они все равно простые XML) и вручную генерировать ответы как строки XML, а затем отправлять их с помощью (например, напишите свой собственный формат контента).
В зависимости от ваших потребностей и существующей кодовой базы это может стоить усилий, или вы можете использовать более технологию SOAP-firendly, такую как WCF или уже упомянутый ServiceStack.
Возможно, вы захотите посмотреть ServiceStack, который должен поддерживать как SOAP, так и REST в одном интерфейсе без каких-либо проблем. Он утверждает, что он лучше лучше, чем WebAPI для веб-сервисов.
Я не могу утверждать, что знаю все о различии, но проблемы, которые, по их утверждению, присущи API-интерфейсу API, я могу сказать по собственному опыту: эволюция API (неизбежная в реальном проекте) довольно сложна в веб-api, И, конечно же, веб-api не поддерживает SOAP.