2011-02-09 40 views
8

Có lý do chính đáng để triển khai hoặc sử dụng dịch vụ SOAP mà không sử dụng tệp WSDL "" không?tại sao SOAP không có WSDL?

Giải thích:

tôi đang ở trong một tình huống mà một bên thứ 3 đã tạo ra một dịch vụ SOAP không tuân theo các tập tin rất WSDL họ cũng đã tạo. Tôi nghĩ rằng tôi buộc phải bỏ qua các tập tin WSDL để tiêu thụ dịch vụ này. Vì vậy, tôi đang nghiên cứu cách thực hiện điều này.

Điều tôi thực sự băn khoăn là tại sao nó thậm chí có thể làm được điều này? Ý định là gì?

Được thiết kế để chúng tôi có thể sử dụng các dịch vụ kém của những người lập trình kém? Chắc chắn phải có một lý do tốt hơn. Tôi gần như muốn nó không thể. Sau đó, tôi có thể yêu cầu họ viết nó đúng cách.

Trả lời

10

WSDL được coi là tài liệu công khai mô tả dịch vụ SOAP, do đó mô tả chữ ký của tất cả các phương thức có sẵn trong dịch vụ. Tất nhiên có thể có các nhà cung cấp dịch vụ muốn trưng bày một dịch vụ cho người tiêu dùng nhất định, nhưng không muốn đặt chữ ký của dịch vụ công khai, nếu chỉ để làm cho nó khó hơn một chút đối với những người mà họ không có. '' t muốn sử dụng dịch vụ để tìm hoặc cố gắng sử dụng dịch vụ đó. Chữ ký của các dịch vụ có thể tiết lộ một số thông tin cá nhân về lược đồ dữ liệu của họ chẳng hạn.

Nhưng tôi không thấy bất kỳ lý do nào để viết WSDL không khớp với dịch vụ. Tôi sẽ lo lắng rằng nếu họ không thể có được WSDL đúng thì chất lượng của dịch vụ sẽ như thế nào?

Để trả lời câu hỏi khác, bạn có thể sử dụng dịch vụ mà không có WSDL. Nếu bạn đang sử dụng Visual Studio ví dụ bạn có thể có VS xây dựng một proxy cho bạn dựa trên WSDL không chính xác và sau đó tinh chỉnh nó để phù hợp với chữ ký phương thức dịch vụ chính xác. Bạn chỉ cần đảm bảo hợp đồng dữ liệu và hợp đồng phương thức trong proxy của bạn khớp với hợp đồng dữ liệu dịch vụ thực tế và hợp đồng phương thức.

+0

Vâng, đó là một điểm tốt về việc không làm cho WSDL không được truy cập công khai. Tuy nhiên, có bất kỳ trường hợp sử dụng cho không có gì cả? Để tạo một dịch vụ SOAP không có WSDL? –

+0

WSDL thường là tài liệu công khai. Có lẽ bạn không muốn đặt chữ ký dịch vụ của mình ở chế độ công khai. Ví dụ, bạn có thể chỉ cung cấp cho người tiêu dùng một proxy trong ngôn ngữ mà họ đã chọn và người tiêu dùng không bao giờ cần phải biết chữ ký dịch vụ là gì. –

+0

... một trường hợp sử dụng khác (có thể có liên quan hơn ở đây) ... chúng không cần và chỉ không muốn. –

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