Những ví dụ tốt nhất về tệp WSDL (Cập nhật 2025)

Làm phong phú thêm kiến thức của bạn bằng cách tìm hiểu những ví dụ đơn giản và phức tạp của tệp WSDL.

Minh Triết

Minh Triết

14 tháng 8 2025

Những ví dụ tốt nhất về tệp WSDL (Cập nhật 2025)

Phần mềm ngày nay mạnh mẽ hơn bao giờ hết. Chúng có thể cung cấp rất nhiều thông tin và chức năng cho người dùng. Với khả năng ngày càng mạnh mẽ của các ứng dụng, bạn có bao giờ tự hỏi làm thế nào tất cả những điều đó có thể đạt được không?

Một loại tệp thường xuất hiện trong quá trình phát triển ứng dụng là tệp WSDL, nhưng nó là gì?

Tệp WSDL là gì?

WSDL (Ngôn ngữ mô tả dịch vụ web) cho phép các ứng dụng khác nhau giao tiếp với nhau qua một mạng lưới theo cách chuẩn hóa. Nó kết nối nhà cung cấp và người tiêu dùng dịch vụ web, cho phép trao đổi dữ liệu giữa, nhưng không giới hạn ở, hai bên.

Các tệp WSDL cũng nổi tiếng về việc cung cấp mô tả đầy đủ về khả năng của một dịch vụ web, đặc biệt là cho các dịch vụ web dựa trên SOAP. Các tệp WSDL được viết bằng ngôn ngữ XML (Ngôn ngữ đánh dấu mở rộng) và rất quan trọng cho việc kiểm tra API SOAP.

Quan trọng hơn, các tệp WSDL có nghĩa là vì định nghĩa của một thỏa thuận chính thức giữa nhà cung cấp dịch vụ web và người tiêu dùng dịch vụ. Các tệp WSDL cho thấy những hoạt động nào có sẵn, định dạng và cấu trúc của thông điệp, cùng với các chi tiết quan trọng khác cần thiết khi sử dụng dịch vụ web.

Cấu trúc của các tệp WSDL với ví dụ

Các tệp WSDL có các thành phần chính cung cấp thông tin cho việc sử dụng chúng. Bài viết này sẽ minh họa các phần của một tệp WSDL bằng ngôn ngữ XML, sử dụng một dịch vụ web thời tiết làm ví dụ.

Các loại type

Phần type của các tệp WSDL được sử dụng để định nghĩa các kiểu dữ liệu sẽ được sử dụng trong các hoạt động của dịch vụ web.

<types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/weather">
        <element name="City" type="string"/>
        <element name="Weather" type="string"/>
    </schema>
</types>

Ví dụ này xác định cấu trúc của các phần tử, bao gồm tên của chúng CityWeather đều có kiểu string.

Thông điệp message

Phần message định nghĩa các phần tử dữ liệu đang được trao đổi giữa nhà cung cấp dịch vụ web và người sử dụng dịch vụ. Trong các ví dụ ở trên, bạn có thể thấy tên thông điệp GetWeatherRequestGetWeatherResponse.

<message name="GetWeatherRequest">
    <part name="City" element="tns:City"/>
</message>
<message name="GetWeatherResponse">
    <part name="Weather" element="tns:Weather"/>
</message>

Ở đây, các thông điệp GetWeatherRequestGetWeatherResponse được định nghĩa với một phần chỉ định các phần tử dữ liệu đang được gửi hoặc nhận.

Loại cổng portType

Phần portType mô tả một tập hợp các hoạt động có thể được thực hiện bởi dịch vụ web, chẳng hạn như tên hoạt động GetWeather. Nó định nghĩa giao diện trừu tượng cho dịch vụ, liệt kê các hoạt động cùng với thông điệp đầu vào tns:GetWeatherRequest và đầu ra tns:GetWeatherResponse.

<portType name="WeatherServicePortType">
    <operation name="GetWeather">
        <input message="tns:GetWeatherRequest"/>
        <output message="tns:GetWeatherResponse"/>
    </operation>
</portType>

Ví dụ ở trên cho thấy WeatherServicePortType có một hoạt động đã được định nghĩa là GetWeather với các thông điệp đầu vào và đầu ra được chỉ định.

Ràng buộc binding

Phần binding chỉ định cách các hoạt động trừu tượng được định nghĩa trong portType được ánh xạ tới một giao thức cụ thể để giao tiếp. Nó định nghĩa các chi tiết như định dạng thông điệp và giao thức (ví dụ: SOAP).

<binding name="WeatherServiceSoapBinding" type="tns:WeatherServicePortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="GetWeather">
        <soap:operation soapAction="http://example.com/weather/GetWeather"/>
        <input>
            <soap:body use="literal"/>
        </input>
        <output>
            <soap:body use="literal"/>
        </output>
    </operation>
</binding>

Trong ví dụ này, WeatherServiceSoapBinding được định nghĩa với SOAP làm giao thức ràng buộc, chỉ định các chi tiết về định dạng thông điệp và phương thức truyền tải.

Cổng port

Phần port chỉ định địa chỉ mạng nơi dịch vụ web có thể được truy cập.

<service name="WeatherService">
    <port name="WeatherServicePort" binding="tns:WeatherServiceSoapBinding">
        <soap:address location="http://example.com/weather/service"/>
    </port>
</service>

Ở đây, WeatherService được định nghĩa với WeatherServicePort sử dụng ràng buộc SOAP, và địa chỉ của nó được chỉ định là http://example.com/weather/service.

Ví dụ về các tệp WSDL

Ví dụ về tệp WSDL dịch vụ web thời tiết đơn giản

Kết hợp các đoạn mã thành phần chính khác nhau được cung cấp trong phần trước, chúng ta có thể kết hợp chúng lại với nhau và tạo một tệp WSDL dịch vụ web thời tiết đơn giản.

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:tns="http://example.com/weather"
             targetNamespace="http://example.com/weather">

    <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/weather">
            <element name="City" type="string"/>
            <element name="Weather" type="string"/>
        </schema>
    </types>

    <message name="GetWeatherRequest">
        <part name="City" element="tns:City"/>
    </message>
    <message name="GetWeatherResponse">
        <part name="Weather" element="tns:Weather"/>
    </message>

    <portType name="WeatherServicePortType">
        <operation name="GetWeather">
            <input message="tns:GetWeatherRequest"/>
            <output message="tns:GetWeatherResponse"/>
        </operation>
    </portType>

    <binding name="WeatherServiceSoapBinding" type="tns:WeatherServicePortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="GetWeather">
            <soap:operation soapAction="http://example.com/weather/GetWeather"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>

    <service name="WeatherService">
        <port name="WeatherServicePort" binding="tns:WeatherServiceSoapBinding">
            <soap:address location="http://example.com/weather/service"/>
        </port>
    </service>

</definitions>

Trong ví dụ dịch vụ web thời tiết đơn giản này, có thể thấy rằng:

Ví dụ về tệp WSDL dịch vụ web thương mại điện tử phức tạp

Đây là một ví dụ phức tạp về tệp WSDL dịch vụ web thương mại điện tử bao gồm nhiều hoạt động, kiểu dữ liệu và tính năng.

?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:tns="http://example.com/ecommerce"
             targetNamespace="http://example.com/ecommerce">

    <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/ecommerce">
            <element name="Product">
                <complexType>
                    <sequence>
                        <element name="ProductId" type="string"/>
                        <element name="ProductName" type="string"/>
                        <element name="Price" type="decimal"/>
                    </sequence>
                </complexType>
            </element>
            <element name="Order">
                <complexType>
                    <sequence>
                        <element name="OrderId" type="string"/>
                        <element name="CustomerName" type="string"/>
                        <element name="Products" type="tns:Product" minOccurs="0" maxOccurs="unbounded"/>
                    </sequence>
                </complexType>
            </element>
        </schema>
    </types>

    <message name="GetProductRequest">
        <part name="ProductId" element="tns:ProductId"/>
    </message>
    <message name="GetProductResponse">
        <part name="Product" element="tns:Product"/>
    </message>

    <message name="PlaceOrderRequest">
        <part name="Order" element="tns:Order"/>
    </message>
    <message name="PlaceOrderResponse">
        <part name="Confirmation" type="string"/>
    </message>

    <portType name="ECommerceServicePortType">
        <operation name="GetProduct">
            <input message="tns:GetProductRequest"/>
            <output message="tns:GetProductResponse"/>
        </operation>
        <operation name="PlaceOrder">
            <input message="tns:PlaceOrderRequest"/>
            <output message="tns:PlaceOrderResponse"/>
        </operation>
    </portType>

    <binding name="ECommerceServiceSoapBinding" type="tns:ECommerceServicePortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="GetProduct">
            <soap:operation soapAction="http://example.com/ecommerce/GetProduct"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
        <operation name="PlaceOrder">
            <soap:operation soapAction="http://example.com/ecommerce/PlaceOrder"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>

    <service name="ECommerceService">
        <port name="ECommerceServicePort" binding="tns:ECommerceServiceSoapBinding">
            <soap:address location="http://example.com/ecommerce/service"/>
        </port>
    </service>

</definitions>

Trong ví dụ dịch vụ web thương mại điện tử phức tạp này, có thể thấy rằng:

Chỉnh sửa các tệp WSDL bằng Apidog

Vì các tệp WSDL tương đối phổ biến trong lĩnh vực phát triển phần mềm, bạn có thể cần phải chỉnh sửa hoặc tạo một cái cho riêng mình. Với hàng tấn nền tảng API ở ngoài kia, Apidog là một lựa chọn tuyệt vời.

Apidog cho phép các nhà phát triển, nhà cung cấp dịch vụ web, và người sử dụng dịch vụ web từ bất kỳ nền tảng nào có thể chuyển đổi liền mạch từ các nền tảng API khác sang Apidog.

May mắn thay, Apidog cũng hỗ trợ nhập khẩu tệp WSDL! Nếu bạn quan tâm đến việc thử nghiệm, hãy đảm bảo tải xuống Apidog bằng các nút bên dưới.

button

Đừng quên đăng nhập và bắt đầu một dự án mới ngay khi bạn vào. Nếu bạn cần giúp đỡ, hãy xem qua Tài liệu trợ giúp của Apidog.

Nhập API SOAP của bạn lên Apidog từ tệp WSDL

import wsdl file soap api apidog
Nhập tệp WSDL vào Apidog

Khi bạn đã mở một dự án mới, hãy nhấp vào nút "Cài đặt" trên thanh công cụ dọc nằm ở bên trái của cửa sổ Apidog. Sau đó, nhấp vào Mũi tên 2 và Mũi tên 3 theo thứ tự đó.

Kiểm tra API SOAP dễ dàng trên Apidog

Chỉnh sửa các tệp WSDL bằng Apidog

Nếu bạn đã nhập thành công tệp WSDL, bạn sẽ thấy tên của nó ở bên trái màn hình, như được hiển thị quanh Mũi tên 1.

Để bắt đầu chỉnh sửa tệp WSDL, hãy nhấp vào các mũi tên 2 đến 4 theo thứ tự tăng dần, và bạn đã sẵn sàng!

Kết luận

Với các tệp WSDL dựa trên XML (Ngôn ngữ đánh dấu mở rộng), nó dễ hiểu hơn một chút. Các tệp WSDL có thể khác nhau về độ phức tạp tùy thuộc vào mức độ cụ thể của các mô tả và chức năng của dịch vụ web.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API