Подтвердить что ты не робот

ASP.NET WebAPI + Soap

Поддерживает ли WebAPI SOAP? Я пытаюсь написать SOAP-сервер в MVC4, и, хотя я могу это сделать в WCF, кажется, что WebAPI заменяет это, но я не вижу способов использовать SOAP в этом еще, просто JSON/XML, используя интерфейс стиля REST.

4b9b3361

Ответ 1

Процитировать Скотта Гатри: последние несколько лет видели появление веб-API - сервисов, открытых через простой HTTP, а не через более формальный контракт на обслуживание (например, SOAP или WS *).

Так что я бы сказал нет.

Ответ 2

WEB API - это ответ Microsoft на apis на основе REST. Если вы хотите использовать SOAP, перейдите в WCF.

Ответ 3

Вы должны рассмотреть ServiceStack, который позволяет той же службе поддерживать API REST + SOAP, хотя, поскольку SOAP работает только над HTTP POST имеет некоторые ограничения

Добавить ссылку ServiceStack

В качестве альтернативы SOAP ServiceStack предлагает лучшую альтернативу WCF Добавить ссылку на службы, которая может генерировать типизированный API из URL-адреса, используя Добавить функцию ServiceStack Reference, встроенную в ServiceStackVS.

Преимущества перед WCF

  • Простой Использует небольшой шаблон T4 для сохранения сгенерированных типов POCO. Обновление так же просто, как повторный запуск шаблона T4
  • Универсальный Чистые DTO работают во всех JSON, XML, JSV, MsgPack и ProtoBuf общих клиентах службы.
  • Многоразовый Сгенерированный DTO не привязан к какой-либо конечной точке или формату. Значения по умолчанию являются как частичными, так и виртуальными для максимального повторного использования.
  • Устойчивые Услуги на основе обмена сообщениями предлагают ряд преимуществ перед службами RPC
  • Гибкая Генерация DTO настраивается, сервер и клиенты могут переопределять встроенные значения по умолчанию
  • Интегрированные Метаданные Rich Service, аннотированные по DTO, Внутренние службы исключаются при доступе извне

WebAPI и WCF рекламируют сигнатуры метода RPC

Интересно, что несмотря на методы WebAPI ApiController, взяв тот же RPC как WCF в использовании методов С# RPC для создания и определения чатовских веб-сервисов с тем, что они все еще не могут поддерживать свой собственный стандарт SOAP, сделанный той же компанией.

ServiceStack поддерживает конечные точки REST, SOAP, HTML и MQ с одинаковой услугой

Это свидетельствует о ServiceStack основе сообщений, который предлагает многочисленные преимущества, неспособность поддерживать ту же службу для поддержки нескольких конечных точек и форматов, включая конечные точки REST, SOAP и MQ, а также создание серверных или клиентских HTML-сайтов, если вам это нужно. Вот пример богатого редактора базы данных Northwind, который, поскольку он был создан с ServiceStack, автоматически включает типизированные API REST, которые могут быть вызваны с использованием богатых родных Настольные клиенты, мобильные приложения и приложения для одной страницы.

SOAP все еще плохой вариант для удаленных служб

Несмотря на поддержку SOAP для обеспечения совместимости, доступности и обратной совместимости, мы не рекомендуем для создания платформ веб-сервисов, поскольку они не обязательно сложны, хрупки, медленны и многословны, и есть много лучших альтернатив для использования. я объяснять подробнее в своем интервью в InfoQ.

Ответ 4

WebApi не поддерживает SOAP из коробки. Но это довольно гибкая структура, и вы можете "адаптировать" ее для обработки SOAP: ничто не мешает вам вручную анализировать полученные SOAP-сообщения (они все равно простые XML) и вручную генерировать ответы как строки XML, а затем отправлять их с помощью (например, напишите свой собственный формат контента).

В зависимости от ваших потребностей и существующей кодовой базы это может стоить усилий, или вы можете использовать более технологию SOAP-firendly, такую ​​как WCF или уже упомянутый ServiceStack.

Ответ 5

Возможно, вы захотите посмотреть ServiceStack, который должен поддерживать как SOAP, так и REST в одном интерфейсе без каких-либо проблем. Он утверждает, что он лучше лучше, чем WebAPI для веб-сервисов.

Я не могу утверждать, что знаю все о различии, но проблемы, которые, по их утверждению, присущи API-интерфейсу API, я могу сказать по собственному опыту: эволюция API (неизбежная в реальном проекте) довольно сложна в веб-api, И, конечно же, веб-api не поддерживает SOAP.