أفضل أمثلة لملفات WSDL (محدثة 2025)

قم بإثراء معرفتك من خلال التعرف على أمثلة بسيطة ومعقدة لملفات WSDL.

Amir Hassan

Amir Hassan

29 مايو 2025

أفضل أمثلة لملفات WSDL (محدثة 2025)

البرمجيات في هذه الأيام أقوى من أي وقت مضى. يمكنهم تقديم الكثير من المعلومات والوظائف للمستخدمين. مع تزايد قدرات التطبيقات، هل تساءلت كيف يمكن تحقيق كل ذلك؟

أحد أنواع الملفات التي تظهر غالبًا في مجال تطوير التطبيقات هو ملف WSDL، ولكن ما هو؟

ما هو ملف WSDL؟

WSDL (لغة وصف خدمات الويب) تسمح للتطبيقات المختلفة بالتواصل مع بعضها البعض عبر الشبكة بطريقة موحدة. إنه يربط بين موفري خدمات الويب والمستهلكين، مما يسمح بتبادل البيانات بين الطرفين، وليس مقتصرًا عليهم.

تشتهر ملفات WSDL أيضًا بتوفير أوصاف وفيرة بشأن قدرات خدمة الويب، خاصةً لخدمات الويب المعتمدة على SOAP. تكتب ملفات WSDL بلغة XML (لغة ترميز ممتدة) وهي حيوية لاختبار واجهات برمجة التطبيقات SOAP.

أمر أكثر أهمية، تعتبر ملفات WSDL مهمة بسبب تعريف اتفاق رسمي بين موفر خدمة الويب ومستهلك الخدمة. توضح ملفات WSDL ما هي العمليات المتاحة، والتنسيق وهيكل الرسائل، وغيرها من التفاصيل المهمة المطلوبة عند استخدام خدمة الويب.

هيكل ملفات WSDL مع أمثلة

تحتوي ملفات WSDL على مكونات رئيسية توفر معلومات لاستخدامها. ستعرض هذه المقالة أجزاء من ملف WSDL بلغة XML، باستخدام خدمة ويب للأرصاد الجوية كمثال.

الأنواع type

يستخدم قسم type في ملفات WSDL لتعريف أنواع البيانات التي ستستخدم في عمليات خدمة الويب.

<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>

يوضح هذا المثال هيكل العناصر، بما في ذلك أسمائها City و Weather كونها من نوع string.

الرسالة message

يحدد قسم message عناصر البيانات التي يتم تبادلها بين موفر خدمة الويب ومستخدم الخدمة. في الأمثلة أعلاه، يمكنك رؤية أسماء الرسائل GetWeatherRequest و GetWeatherResponse.

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

هنا، يتم تحديد رسائل GetWeatherRequest و GetWeatherResponse مع جزء يحدد عناصر البيانات التي يتم إرسالها أو استلامها.

نوع المنفذ portType

يصف قسم portType مجموعة من العمليات التي يمكن تنفيذها بواسطة خدمة الويب، مثل اسم العملية GetWeather. يحدد الواجهة المجردة للخدمة، مع قائمة بالعمليات جنبًا إلى جنب مع إدخالها tns:GetWeatherRequest ورسائل إخراجها tns:GetWeatherResponse.

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

يوضح المثال أعلاه WeatherServicePortType عملية محددة GetWeather مع رسائل إدخال وإخراج محددة.

التوثيق binding

يحدد قسم binding كيفية ربط العمليات المجردة المحددة في portType ببروتوكول ملموس للتواصل. يحدد التفاصيل مثل تنسيق الرسالة والبروتوكول (مثل 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>

في هذا المثال، يتم تحديد WeatherServiceSoapBinding باستخدام SOAP كبروتوكول ربط، ويحدد تفاصيل حول تنسيق الرسالة والنقل.

المنفذ port

يحدد قسم port عنوان الشبكة حيث يمكن الوصول إلى خدمة الويب.

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

هنا، يتم تعريف WeatherService مع WeatherServicePort الذي يستخدم ربط SOAP، وعنوانه محدد كما هو موضح في http://example.com/weather/service.

أمثلة على ملفات WSDL

مثال بسيط على ملف WSDL لخدمة الأرصاد الجوية

من خلال تجميع مقتطفات الأكواد المختلفة المكونة الرئيسية المقدمة في القسم السابق، يمكننا دمجها معًا وإنشاء ملف WSDL بسيط لخدمة الأرصاد الجوية.

<?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>

في هذا المثال البسيط لخدمة الأرصاد الجوية، يمكن ملاحظة ما يلي:

مثال معقد على ملف WSDL لخدمة التجارة الإلكترونية

إليك مثال أكثر تعقيدًا لملف WSDL لخدمة التجارة الإلكترونية يتضمن عمليات متعددة، وأنواع بيانات، وميزات.

?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>

في هذا المثال المعقد لخدمة التجارة الإلكترونية، يمكن ملاحظة ما يلي:

تحرير ملفات WSDL باستخدام Apidog

نظرًا لأن ملفات WSDL شائعة نسبيًا في مجال تطوير البرمجيات، قد تحتاج إلى تعديل أو إنشاء واحدة بنفسك. مع العديد من منصات واجهات برمجة التطبيقات المتاحة، يُعتبر Apidog خيارًا ممتازًا.

يسمح Apidog للمطورين وموفري خدمات الويب ومستخدمي خدمات الويب من أي خلفية بإجراء انتقال سلس من منصات واجهات برمجة التطبيقات الأخرى إلى Apidog.

لحسن الحظ، يغطي Apidog أيضًا استيراد ملفات WSDL! إذا كنت مهتمًا بتجربته، تأكد من تحميل Apidog باستخدام الأزرار أدناه.

زر

لا تنس تسجيل الدخول وبدء مشروع جديد بمجرد دخولك. إذا كنت بحاجة إلى المساعدة، تحقق من وثائق مساعدة Apidog.

استيراد واجهة برمجة التطبيقات SOAP الخاصة بك إلى Apidog من ملف WSDL

استيراد ملف WSDL واجهة برمجة التطبيقات SOAP Apidog
استيراد ملف WSDL إلى Apidog

بمجرد فتح مشروع جديد، انقر على زر "الإعدادات" الموجود على الشريط الجانبي العمودي الموجود على الجانب الأيسر من نافذة Apidog. ثم، انقر على السهم 2 والسهم 3 بهذا الترتيب.

اختبار واجهة برمجة التطبيقات SOAP بسهولة على Apidog

تحرير ملفات WSDL باستخدام Apidog

إذا كنت قد استوردت ملف WSDL بنجاح، يجب أن ترى اسمه على الجانب الأيسر من الشاشة، كما هو موضح حول السهم 1.

لبدء تحرير ملف WSDL، انقر على الأسهم 2 إلى 4 بترتيب تصاعدي، وانت في الطريق الصحيح!

الخلاصة

مع ملفات WSDL المعتمدة على XML (لغة ترميز ممتدة)، يصبح من الأسهل قليلاً الفهم. قد تختلف ملفات WSDL في التعقيد اعتمادًا على مدى دقة أوصاف وظيفتها.

Explore more

كيفية الوصول إلى واجهة برمجة تطبيقات كلود 3.7 سونيت واختبارها باستخدام أبادوغ

كيفية الوصول إلى واجهة برمجة تطبيقات كلود 3.7 سونيت واختبارها باستخدام أبادوغ

إذا كنت متحمسًا لإصدار Anthropic الأخير، Claude 3.7 Sonnet، وترغب في استكشاف قدراته من خلال واجهة برمجة التطبيقات (API) أثناء اختباره باستخدام Apidog، فأنت في المكان الصحيح. 💡قبل أن نبدأ، دعني أعطيك لمحة سريعة: قم بتنزيل Apidog مجانًا اليوم لتسهيل عملية اختبار واجهة برمجة التطبيقات الخاصة بك، خاصة لاستكشاف ميزات Claude 3.7 Sonnet القوية - مثالي للمطورين الذين يرغبون في اختبار نماذج الذكاء الاصطناعي المتطورة مثل هذا!زر لنبدأ بشرح لماذا يعد Claude 3.7 Sonnet مهمًا. كشفت Anthropic مؤخرًا عن هذا

25 فبراير 2025

كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog

كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog

تعلم كيفية إنشاء واجهة برمجة تطبيقات RESTful بسيطة باستخدام Spring Boot واختبارها بأداة تسمى APIdog. Spring Boot هو إطار عمل يسهل تطوير الويب باستخدام Java. Apidog هي أداة تساعدك في اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك.

29 فبراير 2024

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات REST

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات REST

تحويل واجهات برمجة التطبيقات SOAP إلى REST أصبح أكثر وضوحًا. تقدم واجهات REST مرونة وقابلية للتوسع وبساطة في تعزيز الاتصال بين نظامين أو برنامجين. في هذه المقالة، اكتشف ما تحتاجه لتحويل واجهات SOAP إلى REST!

29 فبراير 2024

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات