2016-09-09 17 views
6

Tôi đã có một thiết bị đầu cuối SOAP:Có thể truy vấn điểm cuối xà phòng thông qua odata không?

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

tôi muốn tạo một wrapper OData xung quanh dịch vụ này, như vậy mà khi điều hướng đến http://myodataservice/api/Entities$?filter=AccountNumber eq '123123'

Nó sẽ lấy dữ liệu từ dịch vụ SOAP (wsdl) , nhưng nó sẽ cho phép khách hàng phát hành các truy vấn odata.

Có thể truy vấn dịch vụ SOAP bằng ODATA không?

Trả lời

4

Bạn có thể tạo một trình bao bọc OData xung quanh điểm cuối SOAP nhưng tôi không nghĩ rằng nó đáng giá. Dịch vụ OData sẽ cho phép lọc, sắp xếp và lựa chọn bởi tất cả các thuộc tính (trong số những thứ khác) và dịch vụ SOAP có thể không cho phép tất cả điều này để dịch vụ OData của bạn có thể phải truy cập và lấy tất cả dữ liệu và sau đó quá trình đăng nó mất lợi ích chính của OData trong đó bạn có thể thực hiện tất cả việc lọc và sắp xếp ở phía máy chủ. Bạn cũng có thể nhận được phía máy khách dữ liệu và lọc nó ở đó.

Nếu dịch vụ SOAP của bạn bằng cách nào đó có tất cả hỗ trợ này thì có, bạn có thể viết một trình bao OData cho nó và nhận được những lợi ích này, nhưng vẫn còn nhiều việc phải chuyển đổi tất cả các truy vấn khác nhau dịch vụ SOAP của bạn có thể xử lý.

Tôi không biết lý do bạn muốn sử dụng trình bao bọc OData nhưng dường như điều này có thể là rất nhiều công việc vì lợi ích tối thiểu nhưng tất cả phụ thuộc vào trường hợp sử dụng của bạn.

+0

cảm ơn bạn rất nhiều Tom, lý do tôi hỏi là vì CRM 2011 cho thấy cả xà phòng và odata; chúng tôi đã cố gắng truy vấn mô hình CSDL (odata) và khả năng bị hạn chế, xin lưu ý rằng nếu chúng tôi sử dụng điểm cuối odata thì mọi thứ hoạt động tốt, tuy nhiên nếu chúng tôi sử dụng tệp CSDL được cung cấp làm mô hình, thì truy vấn chống lại mô hình này, có rất nhiều vấn đề với serialization và có vẻ như xây dựng các truy vấn linq xấu của nó –

+1

Tôi không nghĩ rằng gói dịch vụ SOAP sẽ giải quyết vấn đề của bạn trong trường hợp đó – TomDoesCode

Các vấn đề liên quan