Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Hướng dẫn Python: Làm việc với Dịch vụ Web dựa trên SOAP

Python là một ngôn ngữ lập trình phổ biến được sử dụng với và cho các dịch vụ web dựa trên SOAP.

Minh Triết

Minh Triết

Updated on tháng 11 29, 2024

Có nhiều ngôn ngữ khách hàng mà bạn có thể học để làm các ứng dụng web hoặc máy chủ cho bất kỳ ai sử dụng. Một ngôn ngữ khách hàng phổ biến mà nhiều người sử dụng hiện nay là Python. Dù bạn là kỹ sư phần mềm hay sinh viên đại học trong học kỳ của bạn, Python là một lựa chọn ngôn ngữ tuyệt vời để thực hành cho kho vũ khí lập trình của bạn.

Python - Ngôn Ngữ Lập Trình Phổ Biến

Nếu đây là lần đầu tiên bạn thấy Python, đây là một ngôn ngữ lập trình máy tính nổi tiếng về khả năng đọc và tính đơn giản. Nó thân thiện với người dùng hơn rất nhiều so với các ngôn ngữ lập trình khác hiện có. Đây có thể là một ngôn ngữ rất phù hợp để học nếu bạn quan tâm đến việc tìm hiểu thêm về phát triển web!

Các trường hợp sử dụng phổ biến khác cho Python bao gồm phân tích dữ liệu, trí tuệ nhân tạo và tự động hóa, vì vậy nếu bạn đang có kế hoạch theo đuổi các lĩnh vực học này, đây là thời điểm hoàn hảo để bắt đầu làm quen với Python!

Dịch Vụ Web Dựa Trên SOAP

SOAP là gì trong "SOAP-based"?

SOAP, viết tắt của Simple Object Access Protocol, là một giao thức để trao đổi thông tin có cấu trúc giữa các dịch vụ web, hệ thống và ứng dụng.

Bằng cách tuân thủ giao thức SOAP, bạn đang làm theo một tập hợp các quy tắc để cấu trúc tin nhắn trong XML (Ngôn Ngữ Đánh Dấu Mở Rộng), cho phép các chương trình chạy trên các hệ điều hành và công nghệ khác nhau giao tiếp với nhau.

Các Thành Phần Chính Của Một Tin Nhắn SOAP Điển Hình

Envelope: Phần tử bên ngoài nhất bao bọc toàn bộ tin nhắn SOAP.

Header: Một phần tùy chọn chứa thông tin bổ sung để xử lý tin nhắn.

Body: Phần chính của tin nhắn chứa dữ liệu thực tế hoặc thông tin yêu cầu/phản hồi.

Fault: Một phần tùy chọn để báo cáo lỗi.

Tệp WSDL Đi Kèm Với Dịch Vụ SOAP

Tài liệu là bạn thân tốt nhất của nhà phát triển khi bạn đang thử nghiệm điều gì đó mới lần đầu tiên. Đối với các dịch vụ web SOAP hoặc API SOAP, hướng dẫn sử dụng có dạng một tệp WSDL.

WSDL viết tắt của Ngôn Ngữ Mô Tả Dịch Vụ Web, cung cấp mô tả về các chức năng của dịch vụ web, các phương pháp được hỗ trợ, các loại dữ liệu được sử dụng, và các giao thức được tuân theo.

Tại Sao Nên Cân Nhắc Sử Dụng Python Để Làm Việc Với Dịch Vụ Web SOAP?

Sử dụng Python để làm việc với các dịch vụ web dựa trên SOAP mang lại nhiều lợi thế cho các nhà phát triển. Dưới đây là một vài lý do tại sao bạn nên cân nhắc sử dụng và học Python:

  1. Đơn Giản và Dễ Dàng: Cú pháp của Python rất rõ ràng và dễ đọc. Điều này cho phép việc viết, hiểu và duy trì mã Python trở nên đơn giản hơn nhiều so với các ngôn ngữ lập trình khác.
  2. Thư Viện Rộng Rãi: Với Python, vô số bộ thư viện và mô-đun có thể làm việc với và cho các dịch vụ web - một số thậm chí chuyên về việc đơn giản hóa việc tiêu thụ dịch vụ SOAP bằng cách giảm độ phức tạp của mã Python cần thiết để tương tác với các dịch vụ web dựa trên SOAP.
  3. Đa Dạng: Python được sử dụng trong nhiều lĩnh vực khác nhau, từ phát triển web đến khoa học dữ liệu và học máy. Với hiểu biết tốt về Python và các dịch vụ web, bạn có thể dễ dàng tích hợp các dịch vụ web dựa trên SOAP vào các ứng dụng trong các lĩnh vực công việc đã đề cập ở trên.
  4. Hỗ Trợ Cộng Đồng: Các nhà phát triển Python trên toàn thế giới đóng góp cho cộng đồng, sản xuất các tài nguyên như hướng dẫn và sách hướng dẫn cho các nhà phát triển mới làm việc với ngôn ngữ lập trình Python, và điều này cũng bao gồm việc làm việc với các dịch vụ web dựa trên SOAP.
  5. Hỗ Trợ Đa Nền Tảng: Ngôn ngữ lập trình Python có thể chạy trên nhiều hệ điều hành khác nhau, chẳng hạn như Windows, macOS, Linux, và hơn thế nữa. Điều này cho phép các ứng dụng Python trở nên dễ bảo trì hơn trong các môi trường làm việc khác nhau.

Ví Dụ Tương Tác Giữa Python Và Các Dịch Vụ Web Dựa Trên SOAP Sử Dụng Thư Viện "Suds-Jurko"

Python yêu cầu thư viện "suds-jurko" để tương tác với các dịch vụ web dựa trên SOAP, vì vậy trước khi bạn làm bất kỳ điều gì, hãy đảm bảo chạy dòng sau trên Bash:

pip install suds-jurko

Tương Tác Đơn Giản Với Dịch Vụ SOAP

from suds.client import Client

# Bước 1: Tạo một SOAP Client
url = 'https://www.example.com/soap-service?wsdl'
client = Client(url)

# Bước 2: Khám Phá Dịch Vụ
print(client)

# Bước 3: Gọi Một Phương Thức SOAP
result = client.service.say_hello('John')

# Bước 4: Xử Lý Phản Hồi
print(result)

Ví dụ này sử dụng một dịch vụ SOAP có một phương thức tên là say_hello, lấy một tham số và trả về một lời chào. Mã này hoạt động bằng cách thay thế URL https://www.example.com/soap-service?wsdl bằng địa chỉ WSDL thực tế của dịch vụ SOAP của bạn để bắt đầu làm việc với nó trong Python!

Sử Dụng Python Để Xử Lý Các Kiểu Dữ Liệu Phức Tạp

from suds.client import Client

# Bước 1: Tạo một SOAP Client
url = 'https://www.example.com/complex-service?wsdl'
client = Client(url)

# Bước 2: Khám Phá Dịch Vụ
print(client)

# Bước 3: Gọi Một Phương Thức SOAP Với Kiểu Phức Tạp
person_data = {'name': 'Alice', 'age': 30, 'city': 'Wonderland'}
result = client.service.process_person_data(person_data)

# Bước 4: Xử Lý Phản Hồi
print(result)

Ví dụ mã Python ở trên cho thấy một dịch vụ SOAP với một phương thức gọi là process_person_data lấy một kiểu phức tạp làm tham số.

Tạo Các Dịch Vụ Web Dựa Trên SOAP Sử Dụng Python

Bạn có thể tạo dịch vụ web dựa trên SOAP (hoặc API SOAP) của riêng mình bằng ngôn ngữ Python. Bắt đầu bằng cách cài đặt thư viện spyne trên Bash

pip install spyne

Tiếp theo, bạn nên tạo một tệp Python mới. Dựa trên ví dụ của bài viết này, tên tệp sẽ là soap_service.py. Lưu ý rằng API SOAP sẽ được định nghĩa bởi sypne.

from spyne import Application, rpc, ServiceBase, Iterable, Integer, Unicode

class HelloWorldService(ServiceBase):
    @rpc(Unicode, Integer, _returns=Iterable(Unicode))
    def say_hello(ctx, name, times):
        for i in range(times):
            yield f"Hello, {name}!"

# Tạo ứng dụng với dịch vụ đã chỉ định
application = Application([HelloWorldService], tns='my_namespace', in_protocol=None, out_protocol=None)

Để đảm bảo rằng API của bạn có thể chạy, hãy thêm mã sau vào tệp mà bạn đã tạo ở bước trước.

from wsgiref.simple_server import make_server

if __name__ == '__main__':
    server = make_server('0.0.0.0', 8000, application)
    server.serve_forever()

Cuối cùng, hãy kiểm tra xem nó có hoạt động hay không bằng cách chạy script Python trên Bash.

python soap_service.py

API SOAP này nên chạy trên một máy chủ HTTP đơn giản với URL http://0.0.0.0:8000.

Kiểm Tra API SOAP Python Sử Dụng Apidog

Bạn đang tự hỏi liệu API SOAP mà bạn tạo bằng Python có hoạt động không? Hãy thử sử dụng Apidog - một nền tảng API mạnh mẽ cho phép bạn không chỉ kiểm tra mà còn gỡ lỗi và tạo API.

Trong bài viết này, một sự trình diễn về cách kiểm tra các API SOAP Python sẽ được cung cấp (Lưu ý: Yêu cầu này khác với các yêu cầu Python!).

Các Điều Kiện Cần Thiết Để Kiểm Tra

Để kiểm tra API SOAP Python, hãy đảm bảo rằng:

  • API SOAP Python đã chạy sẵn
  • Cài đặt Apidog bằng cách nhấp vào nút bên dưới!
button

Bạn cũng sẽ phải chọn tài khoản mà bạn muốn đăng nhập vào Apidog.

Các Bước Để Kiểm Tra API SOAP Python Trên Apidog

Bước 1: Tạo Một Yêu Cầu Mới Trong Apidog

tạo yêu cầu mới trên Apidog
Tạo một yêu cầu mới trên Apidog

Chọn nút như được hiển thị trong hình ảnh ở trên.

Bước 2: Cấu Hình Yêu Cầu Mới

thay đổi loại yêu cầu url apidog
Cấu Hình Yêu Cầu Mới

Mũi Tên 1 - Hãy chắc chắn đặt loại yêu cầu là POST vì các yêu cầu SOAP thường được gửi qua phương thức HTTP POST. Ở đây, bạn cũng nên đặt URL Yêu Cầu đến điểm kết thúc của API SOAP Python đang chạy của bạn. Một ví dụ về URL yêu cầu này có thể là http://localhost:8000/.

Mũi Tên 2 - Thêm bất kỳ tham số bổ sung nào để phù hợp với API SOAP của bạn.

Bước 3 - Bao Gồm Các Header

thiết lập các header để kiểm tra api soap apidog
Thiết lập các header cho yêu cầu API của bạn

Để đến phần trên, hãy nhấp vào nút "Headers" và thêm hai header vào yêu cầu của bạn:

  • Content-Type: Đặt giá trị này thành text/xml.
  • SOAPAction: Đặt giá trị này thành hành động hoặc phương thức SOAP mà bạn muốn gọi.

Bước 4 - Đặt Thân Yêu Cầu

thiết lập thân yêu cầu dạng raw xml
Thiết lập Thân Yêu Cầu Để Kiểm Tra API SOAP
  • Dưới phần "Body", chọn tùy chọn raw.
  • Xây dựng một yêu cầu SOAP sử dụng định dạng XML phù hợp với phương thức dịch vụ mà bạn muốn gọi trong không gian trống được chỉ ra bởi mũi tên.

Một ví dụ yêu cầu SOAP cho phương thức gọi là say_hello có thể được thêm như sau:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="my_namespace">
    <soapenv:Header/>
    <soapenv:Body>
        <web:say_hello>
            <name>John</name>
            <times>3</times>
        </web:say_hello>
    </soapenv:Body>
</soapenv:Envelope>

Chỉ cần đảm bảo rằng nếu mẫu mã trên được sử dụng, không gian tên (my_namespace) và các tham số phương thức được thay thế bằng chi tiết dịch vụ thực tế của bạn.

Bước 5 - Gửi Yêu Cầu và Kiểm Tra Phản Hồi

Khi mọi thứ đã sẵn sàng, nhấn nút "Gửi" nằm ở góc trên bên phải của màn hình!

Nếu thành công, bạn sẽ có thể xem phản hồi nhận được. Kiểm tra kỹ xem phản hồi có đúng như bạn mong đợi không.

Kết Luận

Python là một ngôn ngữ lập trình được khuyến nghị với nhiều tính linh hoạt cho các lập trình viên mới và cũ. Tất cả những gì bạn cần làm là chọn một nền tảng API (như Apidog), và bạn có thể bắt đầu kiểm tra chức năng của API SOAP của mình. Tuy nhiên, bạn cũng có thể sử dụng Apidog để kiểm tra các API REST Python nữa!