Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

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

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

@apidog

@apidog

Updated on نوفمبر 6, 2024

تعتبر خدمات الويب SOAP و REST APIs تقنيتين شهيرتين يستخدمهما مطورو الويب. ومع ذلك، مع استبدال واجهات برمجة التطبيقات SOAP ببطء بأسلوب العمارة REST، هل هناك أي طرق للاستفادة من خدمات الويب SOAP الحالية؟

💡
Apidog هي منصة تطوير واجهات برمجة التطبيقات الشاملة التي تدعم استيراد واجهات برمجة التطبيقات SOAP وREST، والعديد من أنواع الملفات الأخرى لمطوري واجهات برمجة التطبيقات أو الويب المهتمين بتصحيح الأخطاء أو تحرير واجهات برمجة تطبيقاتهم.

إذا كانت المرونة والبساطة ما تبحث عنه في أداة واجهة برمجة التطبيقات، فكر في تجربة Apidog. كل ما عليك فعله هو الضغط على الزر أدناه للبدء! 👇 👇 👇
زر

قبل الخوض في التفاصيل التقنية لتحويل واجهة برمجة التطبيقات SOAP إلى واجهة REST، سيتم تقديم مقدمة عن واجهات برمجة التطبيقات SOAP وREST، وتوضيح الفروقات ونقاط القوة لكلًا من واجهات برمجة التطبيقات SOAP وREST.

ما هي واجهات برمجة التطبيقات SOAP؟

واجهات برمجة التطبيقات SOAP (بروتوكول الوصول للأشياء البسيطة) تتبع بروتوكولًا موحدًا وضعته منظمة الويب العالمية (W3C). مثل واجهات برمجة التطبيقات الأخرى، يتم تنفيذ واجهات برمجة التطبيقات SOAP Exchange معلومات بين تطبيقات وأنظمة مختلفة.

الخصائص الرئيسية لواجهة برمجة التطبيقات SOAP

  • مبنية على XML: تعتمد واجهات برمجة التطبيقات SOAP على XML (لغة ترميز قابلة للتوسع) لهيكلة البيانات في الطلبات والاستجابات. هذا يضمن تنسيقًا ثابتًا ومحددًا جيدًا للتواصل.
  • منظمة ورسمية: مقارنة بأساليب واجهات برمجة التطبيقات الأخرى، تعتبر واجهات برمجة التطبيقات SOAP أكثر تنظيمًا ورسمية. إنها تعرف بوضوح كل عملية، والمعلمات الخاصة بها، والهيكل المتوقع للاستجابات باستخدام مستند يسمى ملف WSDL (لغة وصف خدمات الويب).
  • موثوقة وآمنة: تُعرف واجهات برمجة التطبيقات SOAP بمستوى موثوقيتها وأمانها. غالبًا ما تستخدم التشفير والتوقيعات الرقمية لضمان نقل البيانات بشكل آمن.

حالات الاستخدام الشائعة لواجهات برمجة التطبيقات SOAP


الخدمات المالية: يعتمد القطاع المالي بشكل كبير على تبادل البيانات بشكل آمن وموثوق. تعتبر واجهات برمجة التطبيقات SOAP، مع ميزات الأمان القوية وهيكل البيانات المنظم، مثالية لمهام مثل:

  • التواصل بين البنوك
  • تحويلات مالية آمنة
  • معالجة بطاقات الائتمان

إدارة سلسلة التوريد: تعتمد سلاسل التوريد الفعالة على تبادل المعلومات بسلاسة بين الشركات المختلفة. يمكن أن تسهل واجهات برمجة التطبيقات SOAP ذلك من خلال:

  • مشاركة مستويات المخزون
  • التواصل حول حالة الطلبات
  • تتبع الشحنات

دمج الأنظمة القديمة: تحتاج التطبيقات الحديثة غالبًا إلى التفاعل مع أنظمة قديمة تفتقر إلى إمكانيات واجهات برمجة التطبيقات الحديثة. تعمل واجهات برمجة التطبيقات SOAP كحلقة وصل من خلال:

  • كشف وظائف الأنظمة القديمة
  • دمج هذه الوظائف في سير العمل الأحدث

ما هي واجهات برمجة التطبيقات REST؟

واجهات برمجة التطبيقات REST (نقل الحالة التمثيلية)، التي تُطلق عليها أحيانًا اسم APIs RESTful، تتبع أسلوب العمارة REST.

الخصائص الرئيسية لواجهة برمجة التطبيقات REST

  • عديمة الحالة: تُعرف واجهات برمجة التطبيقات REST بأنها عديمة الحالة، مما يعني أن كل طلب يُرسل من التطبيق إلى الخادم يتضمن جميع المعلومات اللازمة للمعالجة، ولا يحتفظ الخادم بأي معلومات عن حالة التفاعلات السابقة. هذا يجعل واجهات برمجة التطبيقات REST قابلة للتوسع وواضحة للمطورين لفهمها.
  • معتمدة على الموارد: تتفاعل واجهات برمجة التطبيقات REST مع الموارد المحددة باستخدام معرفات الموارد الموحدة (URIs). يمكن أن تمثل هذه الموارد كيانات موجودة في العالم الحقيقي مثل المستخدمين والمنتجات والإجراءات.
  • طرق HTTP القياسية: تستخدم واجهات برمجة التطبيقات REST طرق HTTP القياسية مثل GET وPOST وPUT وDELETE للعمليات المختلفة.
    GET: لاسترجاع معلومات حول مورد.
    POST: لإنشاء مورد جديد.
    PUT: لتحديث مورد موجود.
    DELETE: لحذف مورد.
  • خفيفة ومرنة: مقارنةً بواجهات برمجة التطبيقات SOAP، تعتبر واجهات برمجة التطبيقات REST بشكل عام أخف وأكثر مرونة. من الأسهل إعدادها واستخدامها ودمجها مع تطبيقات ومنصات مختلفة.

حالات الاستخدام الشائعة لواجهات برمجة التطبيقات REST

التطبيقات المحمولة: تعتمد التطبيقات المحمولة على واجهات برمجة التطبيقات REST للتفاعل مع الخوادم الخلفية. يتيح لهم هذا التفاعل أن:

  • استرجاع البيانات: استرجاع معلومات مثل قوائم المنتجات، تحديثات الأخبار، أو ملفات تعريف المستخدمين. إذا تم إنشاء واجهة برمجة التطبيقات REST باستخدام React، قد تستخدم أيضًا Fetch API للمساعدة في استرداد البيانات.
  • تنفيذ الإجراءات: إضافة عناصر إلى عربة التسوق، نشر التعليقات، أو تقديم النماذج.
  • إرسال معلومات المستخدم: مشاركة بيانات الموقع، تفضيلات المستخدم، أو بيانات تسجيل الدخول.

التطبيقات الإلكترونية: تستخدم العديد من التطبيقات الإلكترونية، سواء كانت صفحة واحدة أو تقليدية، واجهات برمجة التطبيقات REST للتواصل مع خوادم الويب وقواعد البيانات. يتيح لهم هذا التواصل أن:

  • استرجاع المحتوى: استرداد محتوى ديناميكي مثل نتائج البحث، التوصيات المخصصة، أو المحتوى الذي ينتجه المستخدمون.
  • تحقق من هوية المستخدمين: السماح للمستخدمين بتسجيل الدخول، إدارة حساباتهم، وإدارة بيانات المستخدم.
  • إدارة البيانات: إنشاء وتحديث وحذف البيانات مثل المقالات، ملفات تعريف المستخدمين، أو معلومات المنتج.

منصات الوسائط الاجتماعية: في قلب التفاعل الاجتماعي يتواجد تبادل المعلومات الذي يسهله واجهات برمجة التطبيقات REST. تمكن هذه الواجهات المستخدمين من:

  • مشاركة المحتوى: نشر التحديثات، القصص، وغير ذلك من المحتوى الإعلامي.
  • التفاعل مع بعضهم البعض: الإعجاب، التعليق، ومشاركة محتوى المستخدمين الآخرين.
  • الوصول إلى وظائف المنصة: استخدام ميزات مثل المراسلة، إنشاء المجموعات، وإدارة إعدادات الحساب.

لماذا تحويل واجهات برمجة التطبيقات من SOAP إلى REST؟

بعيدًا عن أحد العوامل الرئيسية التي تعود إلى أن واجهات برمجة التطبيقات SOAP أكثر تعقيدًا في الاستخدام والفهم، هناك أسباب أخرى تجعل العديد من المطورين يقومون بتحديث واجهات برمجة التطبيقات SOAP وتحويلها إلى واجهات REST.

1. البساطة وسهولة الاستخدام: تعتبر واجهات برمجة التطبيقات REST عمومًا أكثر بساطة وسهولة في الاستخدام من واجهات برمجة التطبيقات SOAP. تستخدم REST طرق HTTP القياسية مثل GET وPOST وPUT وDELETE، وهي مألوفة لمعظم المطورين.

تعتمد SOAP على XML لكل من الطلبات والاستجابات، مما قد يكون أكثر تعقيدًا عند مقارنته بـ JSON أو تنسيقات البيانات الأخرى المستخدمة عادة في واجهات برمجة التطبيقات REST.

2. المرونة والقابلية للتوسع: تعتبر واجهات برمجة التطبيقات REST أكثر مرونة وقابلية للتوسع من واجهات برمجة التطبيقات SOAP حيث أن REST تعتمد على الموارد، مما يسمح بتصميم أكثر تنظيمًا وقابلية للتكيف. يمكن إضافة وظائف جديدة عن طريق إدخال موارد جديدة وURIs.

بينما تعتمد SOAP على الرسائل، مما يجعلها أقل مرونة وقد تكون أكثر تعقيدًا للتوسع مع نمو واجهة برمجة التطبيقات.

3. اعتماد أوسع وأدوات: تُعتبر واجهات برمجة التطبيقات REST أكثر اعتمادًا ودعمًا من واجهات برمجة التطبيقات SOAP.

  • تتوفر العديد من أدوات التطوير والأطر والمكتبات لبناء والتفاعل مع واجهات برمجة التطبيقات REST بسهولة.
  • ت simplifies هذا النظام البيئي الأوسع التطوير والدمج لكلا مقدمي ومستخدمي واجهات برمجة التطبيقات REST.

4. ممارسات التطوير الحديثة: تتماشى واجهات برمجة التطبيقات REST بشكل أفضل مع ممارسات وتوجهات التطوير الحديثة:

  • تميل واجهات برمجة التطبيقات REST إلى أن تكون أخف وزنًا، مما يؤدي إلى تواصل أسرع وتحسين تجربة المستخدم في التطبيق.
  • تسهل الطبيعة عديمة الحالة لواجهات برمجة التطبيقات REST استراتيجيات التخزين المؤقت وتوازن الحمل بسهولة أكبر.

5. تحسين تجربة المطور: بشكل عام، يمكن أن يؤدي التحويل إلى واجهة برمجة التطبيقات REST إلى تحسين تجربة المطور بطرق عدة:

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

عينة من أكواد واجهات برمجة التطبيقات SOAP وREST (مقارنة)

ستعرض الفقرة أدناه واجهات برمجة التطبيقات SOAP وREST باستخدام لغة بايثون، مع توفير نفس الوظائف: استرجاع معلومات عن المنتج بناءً على المعرف. (يرجى ملاحظة أن نسخ عينة الكود المقدمة أدناه قد لا تعمل بالضرورة على جهازك، لذا تأكد من إجراء التعديلات اللازمة.)

واجهة برمجة التطبيقات SOAP (مع مكتبة zeep للتواصل):

from zeep import Client

# Replace with the actual WSDL URL of the SOAP API
wsdl_url = "https://example.com/soap/product?wsdl"

# Create a SOAP client
client = Client(wsdl_url)

# Product ID to retrieve information for
product_id = 123

# Define the operation name
operation_name = "GetProductDetails"

# Send the SOAP request with product ID as parameter
response = client.service[operation_name](productId=product_id)

# Extract product name and price from the response (assuming structure)
product_name = response["productName"]
product_price = response["price"]

print(f"Product Name: {product_name}")
print(f"Product Price: {product_price}")

شرح واجهة برمجة التطبيقات SOAP:

  1. استيراد مكتبة zeep: تسهل هذه المكتبة التواصل مع واجهات برمجة التطبيقات SOAP في بايثون.
  2. تحديد عنوان WSDL: إذا كنت تخطط لاستخدام عينة الكود، يمكنك استبدال https://example.com/soap/product?wsdl بعنوان WSDL الفعلي لواجهة برمجة التطبيقات SOAP التي تريد التواصل معها.
  3. إنشاء عميل SOAP: يتم إنشاء كائن Client من zeep باستخدام عنوان WSDL.
  4. تحديد اسم العملية: اسم العملية لواجهة برمجة التطبيقات SOAP هو GetProductDetails.
  5. إرسال الطلب: يتم إرسال طلب SOAP مع معرف المنتج كمعامل ويستخرج البيانات المطلوبة من الاستجابة.

واجهة برمجة التطبيقات REST (باستخدام مكتبة requests):

import requests

# Replace with the actual base URL of the REST API
base_url = "https://example.com/api/products"

# Product ID to retrieve information for
product_id = 123

# Construct the API endpoint URL with the specific product ID
url = f"{base_url}/{product_id}"

# Send GET request to the REST API endpoint
response = requests.get(url)

# Check for successful response (status code 200)
if response.status_code == 200:
  # Parse the JSON response data (assuming JSON format)
  data = response.json()
  product_name = data["name"]
  product_price = data["price"]
  print(f"Product Name: {product_name}")
  print(f"Product Price: {product_price}")
else:
  print(f"Error retrieving product information: {response.status_code}")

شرح واجهة برمجة التطبيقات REST:

  1. استيراد requests: تستخدم مكتبة requests للتفاعل مع واجهة برمجة التطبيقات REST.
  2. تحديد عنوان القاعدة: يتم إنشاء عنوان نقطة النهاية المحددة للمنتج المرغوب عن طريق إضافة معرف المنتج في نهاية العنوان.
  3. إرسال الطلب: ترسل واجهة برمجة التطبيقات REST طلبًا إلى نقطة النهاية، وتتحقق مما إذا كانت تتلقى استجابة ناجحة.
  4. تحليل البيانات: إذا كانت الاستجابة ناجحة، تتم معالجة البيانات من استجابة JSON للاستخراج، وإلا يتم التعامل مع الاستجابة غير الناجحة.

الفروق الرئيسية الملحوظة بين عمليات SOAP وREST

يمكن ملاحظة أنه من عينات الأكواد وجود اختلافات في:

  • بروتوكول التواصل: تستخدم SOAP رسائل SOAP عبر HTTP، بينما تستخدم REST طرق HTTP القياسية مثل GET وتستفيد من تنسيقات بيانات مثل JSON أو XML.
  • تنسيق البيانات: تستخدم SOAP XML لكل من الطلبات والاستجابات، بينما تستخدم REST بشكل شائع JSON أو تنسيقات أخرى.
  • الهيكلة: تعتمد SOAP على WSDL لتعريف واجهة برمجة التطبيقات، بينما تعتمد REST على URIs المحددة بشكل جيد وطرق HTTP القياسية.

كيفية تحويل واجهات برمجة التطبيقات SOAP إلى REST؟

على الرغم من أنه كما لوحظ من عينات الأكواد، يمكن أن تعمل كل من واجهات برمجة التطبيقات SOAP وREST باستخدام نفس لغة العميل، تختلف التركيبة والبروتوكولات والهيكلة كثيرًا لدرجة أنها ستكون طريقة معقدة جدًا.

ومع ذلك، هناك خطوات أساسية لتحويل واجهات برمجة التطبيقات SOAP إلى REST، بغض النظر عن مدى بساطة أو تعقيد واجهة برمجة التطبيقات SOAP.

1. تحليل واجهة برمجة التطبيقات SOAP:

  • فهم WSDL: قم بمراجعة وثيقة WSDL بدقة. إنها تحدد العمليات والمعلمات والهياكل المستجيبة المتوقعة.
  • تحديد الموارد: قم برسم الوظائف والبيانات المشاركة في واجهة برمجة التطبيقات إلى "موارد" ذات صلة بمعنى RESTful. تمثل هذه الموارد كيانات مثل المستخدمين والمنتجات أو الإجراءات.
  • رسم العمليات إلى طرق HTTP: تحديد الطريقة الأكثر ملاءمة لـ HTTP (GET، POST، PUT، DELETE) لكل عملية بناءً على غرضها (استرجاع، إنشاء، تحديث، حذف الموارد).

2. تصميم واجهة برمجة التطبيقات REST:

  • تحديد URIs RESTful: إنشاء URIs واضحة ووصفيّة للوصول إلى الموارد باستخدام التركيب القياسي. يجب أن تعكس هذه URIs التسلسل الهرمي والعلاقات بين الموارد.

    مثال: /products/{id} لاسترجاع منتج محدد بناءً على المعرف.
  • تحديد تنسيقات البيانات: اختيار تنسيق بيانات مناسب لحمولة الطلب والاستجابة، بشكل شائع JSON أو XML. النظر في عوامل مثل التوافق مع تطبيقك وحجم وComplexity of the data.
  • توثيق واجهة برمجة التطبيقات: وثق واجهة برمجة التطبيقات REST باستخدام تنسيق قياسي مثل OpenAPI (Swagger) أو Postman Collection. ستصبح هذه الوثائق مرجعًا للمطورين الذين يرغبون في التفاعل مع واجهة برمجة التطبيقات الخاصة بك.

3. التنفيذ:

  • تطوير خادم واجهة برمجة التطبيقات: تنفيذ المنطق للتعامل مع الطلبات والاستجابات بناءً على التصميم RESTful المحدد. يتضمن ذلك عادةً بناء تطبيق خادم باستخدام لغة البرمجة والإطار المختارين.
  • التعامل مع تحويل البيانات: تنفيذ منطق لتحويل بين تنسيقات بيانات SOAP وREST (إذا لزم الأمر). قد يتضمن ذلك معالجة رسائل SOAP وتحويلها إلى تنسيق REST المختار (مثل JSON) للاستجابات.

4. الاختبار والنشر:

  • اختبار واجهة برمجة التطبيقات REST بدقة: التأكد من أنها تعكس بدقة وظائف واجهة برمجة التطبيقات SOAP الأصلية وتلتزم بمبادئ RESTful.
  • نشر واجهة برمجة التطبيقات REST: جعل واجهة برمجة التطبيقات متاحة للمطورين من خلال نشرها على منصة أو بيئة خادم مناسبة.

Apidog - تحويل SOAP إلى REST بنقرة واحدة

Apidog هي أداة واجهة برمجة التطبيقات الشاملة، الموجهة نحو التصميم للمطورين لبناء واجهات برمجة التطبيقات. مع Apidog، يمكن لمطوري واجهات برمجة التطبيقات البناء، والاختبار، والتوثيق، والمزmock.

وظائف Apidog اختبار بناء المزmock
ألقِ نظرة على ما تقدمه Apidog!
زر

إذا كنت ترغب في عرض واجهات برمجة التطبيقات SOAP الخاصة بك لتحويلها إلى واجهات REST، فإن Apidog تغطي جميع احتياجاتك. مع تسهيل التعديلات والمواصفات لدورة حياة واجهة برمجة التطبيقات بأكملها، يمكن أن تدعم Apidog كل حاجة يبحث عنها مطور واجهة برمجة التطبيقات.

استيراد ملف WSDL المتعلق بـ SOAP إلى Apidog

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

ضمن الإعدادات، يمكنك استيراد ملفات WSDL عن طريق اختيار قسم استيراد البيانات.

تصدير SOAP إلى REST مع Apidog

بعد استيراد البيانات من ملف WSDL، يمكنك رؤية جميع بيانات واجهة برمجة التطبيقات SOAP الخاصة بك والتي ستظهر في Apidog. يمكنك تعديلها حسب الحاجة.

مع Apidog، يمكنك تحويل ملفات WSDL المستوردة مؤخرًا إلى ملفات JSON عن طريق اختيار خيار التصدير. من خلال تصديرها، يمكنك حفظ واجهات برمجة التطبيقات SOAP كملفات JSON، والتي تقنيًا تحولها إلى REST (حيث أن واجهات برمجة التطبيقات SOAP تكون بتنسيق XML).

تصدير واجهة برمجة التطبيقات Apidog
العثور على خيار التصدير في Apidog

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

تصدير ملف OpenAPI Swagger Apidog
تصدير كملف OpenAPI

وأخيرًا، اختر خيار OpenAPI (Swagger) لتصدير واجهة برمجة التطبيقات SOAP كملف JSON.

الخاتمة

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

مع Apidog، قد يصبح من الممكن تحويل واجهات برمجة التطبيقات SOAP إلى REST. من خلال استيراد ملفات WSDL وتصديرها كملفات OpenAPI أو Swagger، يمكنك الحصول على واجهات برمجة التطبيقات SOAP في شكل ملف JSON. إذا كنت ترغب في معرفة المزيد عن هيكل واجهة برمجة التطبيقات SOAP الخاصة بك، يمكنك أيضًا عرض تفاصيلها على Apidog، وإجراء المزيد من الاختبارات وتصحيح الأخطاء معها.

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

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

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

@apidog

فبراير 29, 2024

قم بتنزيل وتثبيت إنسومنيا على ويندوز/ماكOSالدروس التعليمية

قم بتنزيل وتثبيت إنسومنيا على ويندوز/ماكOS

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

@apidog

فبراير 27, 2024

كيف يمكن أن يعزز gRPC وHTTP/2 أداء واجهة برمجة التطبيقات الخاصة بكالدروس التعليمية

كيف يمكن أن يعزز gRPC وHTTP/2 أداء واجهة برمجة التطبيقات الخاصة بك

تعرف على gRPC وHTTP/2، وكيف يعملان معًا، ولماذا يمكنهما تقديم فوائد كبيرة لأداء واجهات برمجة التطبيقات الخاصة بك. أيضًا، اكتشف كيفية استخدام apidog لاختبار وتصحيح واجهات برمجة التطبيقات gRPC بسهولة.

@apidog

فبراير 27, 2024