2016-09-09 3 views
6

У меня есть SOAP конечной точки:Можно ли запросить конечную точку мыла через odata?

<organization URL>/XRMServices/2011/Organization.svc 

Я хотел бы создать OData обертку вокруг этой службы, таким образом, что при переходе к http://myodataservice/api/Entities$?filter=AccountNumber eq '123123'

Это будет извлекать данные из SOAP (WSDL) службы , но это позволит клиенту выпускать запросы odata.

Возможно ли запросить службу SOAP с использованием ODATA?

ответ

4

Вы можете создать оболочку OData вокруг конечной точки SOAP, но я не думаю, что она того стоит.

Служба OData позволит фильтровать, упорядочивать и выбирать все свойства (среди прочего), и служба SOAP может не разрешить все это, поэтому вам, возможно, придется обратиться к службе OData и получить все данные и затем выполните процесс, который потеряет основное преимущество OData, поскольку вы можете выполнять всю фильтрацию и сортировку на стороне сервера. Вы также можете просто получить клиентскую часть данных и отфильтровать его там.

Если ваша служба SOAP каким-то образом имеет всю эту поддержку, то да, вы можете написать для нее обертку OData и получить эти преимущества, но все равно будет много работы по преобразованию всех различных возможных запросов в нечто такое, что ваш SOAP-сервис может обрабатывать.

Я не знаю ваших причин, требующих обертки OData, но похоже, что это может быть большой работой для минимальной выгоды, но все зависит от вашего варианта использования.

+0

большое спасибо Том, причина, по которой я спрашиваю, заключается в том, что CRM 2011 предоставляет как мыло, так и одату; мы пытались выполнить запрос к модели CSDL (odata), и возможности были чрезвычайно ограничены, обратите внимание, что если мы используем конечную точку odata, тогда все будет хорошо, однако, если мы будем использовать предоставленный CSDL-файл в качестве модели, тогда запрос против этой модели есть много проблем с сериализацией, и похоже, что она строит плохие запросы linq –

+1

Я не думаю, что упаковка SOAP-сервиса решит вашу проблему в этом случае – TomDoesCode

Смежные вопросы