Khi nói đến hỗ trợ SOAP, Python tiếc là không còn là "pin đi kèm". Sự hỗ trợ trên phía khách hàng là chấp nhận được nhưng về phía máy chủ bạn về cơ bản là của riêng bạn.
Bạn có thể muốn nhìn vào những điều sau đây cho người mới bắt đầu:
http://wiki.python.org/moin/WebServices
http://pywebsvcs.sourceforge.net/
http://doughellmann.com/2009/09/01/evaluating-tools-for-developing-with-soap-in-python.html
Nếu bạn thực sự muốn đi trên tuyến đường này, có vẻ như ZSI là công cụ để sử dụng, mặc dù tôi có nghi ngờ rằng nó sẽ làm việc với bản phân phối Python 2.x mới nhất.
Sử dụng Python 2.6.6, tôi đã cố gắng sử dụng ZSI 2.0 để xây dựng một dịch vụ web bắt đầu từ WSDL. Có một số cảnh báo "mô-đun đã không được dùng nữa" khi tạo mã bằng wsdl2py
và wsdl2dispatch
, phải cài đặt riêng PyXML và hack sys.path
của tôi chỉ để giải quyết vấn đề này trước khi tôi nhận được "mô-đun ext.reader không tồn tại" với một lỗi "ZSI: EvaluateException Got None" không đáng thất vọng đối với lỗi không phải là lỗi (sai), minOccurs (1) "trên cơ sở" Hello world! " WS với một yếu tố cần thiết.
Chuyển sang ZSI 2.1_a1 mà không còn cần PyXML và wsdl2py
sẽ làm tất cả (những gì đã làm cho wsdl2dispatch
2.0) nhưng vẫn kết thúc trong một ngõ cụt với "ZSI: EvaluateException Got Không cho nillable (False), minOccurs (1) phần tử "lỗi.
Trải nghiệm không thú vị lắm nhưng tôi đã đủ để tạo ra ý kiến về những gì Python cung cấp cho dịch vụ web SOAP ... không nhiều (và đó chỉ là dịch vụ web cơ bản không có gì ưa thích như WS-* specs). YMMV!
EDIT: Gần đây tôi đã gặp phải this SO question và mặc dù được định hướng so với giải pháp máy khách, nó cũng đề cập đến một số thư viện để xây dựng các dịch vụ SOAP.
I gốc 'thêm một tiền thưởng cho điều này. Tôi chỉ không thể tin rằng không có giải pháp tốt. –
BTW: bạn có biết bất kỳ thư viện nào có thể tạo mã (không phải là một thư viện Python) dựa trên WSDL không? Tôi tự hỏi làm thế nào cứng nó sẽ được thực hiện như một chức năng cho Spyne (tạo ra các mô hình dựa trên WSDL). – Pax0r
Dường như không có máy chủ xà phòng python trưởng thành ... không thể tin điều này đang xảy ra với python –