Когда я заставляю мою (ASMX) веб-службу принимать / возвращать JSON вместо XML, это больше не считается SOAP? - PullRequest
2 голосов
/ 05 мая 2011

Просто пытаюсь обернуть голову вокруг SOAP против REST.В настоящее время у нас есть несколько веб-сервисов asmx, которые в основном используются между нашим собственным JavaScript и серверным кодом (не публичным API).Когда я указываю свой метод как ScriptService и указываю ResponseFormat Json, он все еще считается просто службой SOAP?Мне все еще не нравится REST, но, может быть, это из-за способа, которым мои «ресурсы» спроектированы (не очень хорошо / полностью представлены отдыхом).

РЕДАКТИРОВАТЬ: Читая больше, я могу запутать format (JSON vs XML) с тем фактом, что большинство описаний протокола SOAP связаны в XML.Например, Википедия гласит:

Для своего формата сообщения он опирается на расширяемый язык разметки (XML)

Мне логически это говорит, что если яя использую JSON Я не должен использовать SOAP.

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

Это не совсем то, что вы просили, но сервисы ASMX не являются RESTful, если вы вызываете их из JavaScript и получаете JSON. Вы должны сделать POST-запрос к службам ASMX, чтобы получить JSON из них, даже если этот запрос идемпотентен и извлекает только данные. В API RESTful в этом случае будет использоваться запрос GET, а не POST.

Это не означает, что отсутствие RESTfulness является актуальной проблемой для частного API. Я обнаружил, что сервисы ASMX в качестве сервисного уровня на основе JSON для обратных вызовов AJAX прекрасно работают на практике.

1 голос
/ 05 мая 2011

Вы определяете, какие запросы будут отправлены вам на веб-сервис (asmx).Разрешены многие протоколы: HTTP POST, HTTP GET, SOAP 1.1, SOAP 1.2 и т. Д ... ИЛИ вы можете заблокировать любой из них.

Когда вы вызываете веб-сервис с помощью javascript, вы можете использовать POST или GET.Это не важноХитрость заключается в том, какой тип контента вы сообщаете сервису для возврата при этих вызовах.Вы можете указать службе отправлять вам JSON или указать службе отправлять вам XML.

Когда вы создаете клиент службы в Visual Studio для подключения к службе ASMX, Visual Studio попытается получить доступ к WSDL.для службы и клиент будет отвечать за создание конвертов SOAP для связи со службой, и в этом случае вы будете отправлять и получать XML, потому что именно это клиент и сервер согласились использовать для связи.

...