DEV Community

Cover image for أيهما أفضل: نمط تصميم API أولاً أم نمط التحديد أولاً في Apidog؟
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

أيهما أفضل: نمط تصميم API أولاً أم نمط التحديد أولاً في Apidog؟

تمنحك وحدة APIs في Apidog طريقتين لبناء عقد API نفسه: وضع التصميم أولاً عبر واجهة مرئية، ووضع المواصفات أولاً عبر محرر YAML/JSON متصل بـ Git. كلاهما ينتج مواصفات OpenAPI صالحة؛ الاختلاف الحقيقي هو طريقة عمل فريقك يوميًا: هل يفضّل النماذج المنظمة أم تحرير ملف المواصفات مباشرة؟

جرّب Apidog اليوم

في هذا الدليل ستتعلم متى تستخدم كل وضع، كيف يتعامل كل منهما مع Git، وكيف تختار الوضع الافتراضي المناسب لفريقك. يمكنك التبديل بين الوضعين من مفتاح واحد في أسفل يسار وحدة APIs، لذلك لا تحتاج إلى قرار نهائي من البداية.

الفلسفتان

قبل اختيار الوضع، حدّد طريقة التفكير:

  • العقد أولاً: تحدد API contract قبل كتابة التنفيذ.
  • العقد هو مصدر الحقيقة: الوثائق، الاختبارات، المحاكاة، والكود الناتج تعتمد عليه.
  • OpenAPI هو الناتج المشترك: سواء استخدمت واجهة مرئية أو YAML/JSON.

التصميم أولاً

في التصميم أولاً، تبني العقد عبر واجهة منظمة:

  1. اختر HTTP method مثل GET أو POST.
  2. أضف المسار مثل /users/{id}.
  3. عرّف path/query/header parameters.
  4. أنشئ request/response schemas.
  5. أضف أمثلة للاختبار والتوثيق.

الأداة تمنع الكثير من الأخطاء لأنك تدخل القيم من نماذج وقوائم بدل كتابة YAML يدويًا.

المواصفات أولاً

في المواصفات أولاً، تكتب العقد مباشرة كملف OpenAPI أو Swagger:

openapi: 3.0.3
info:
  title: Users API
  version: 1.0.0
paths:
  /users/{id}:
    get:
      summary: Get user by ID
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: User found
Enter fullscreen mode Exit fullscreen mode

هنا يكون ملف المواصفات هو سطح العمل الأساسي، وتتعامل معه مثل أي ملف مصدر داخل Git.

ملاحظة مهمة: كلا وضعي Apidog يحافظان على العقد قبل الكود. الاختلاف ليس في الفلسفة، بل في طريقة تأليف العقد: نماذج مرئية أم محرر نصوص.

للسياق الأوسع حول التعامل مع المواصفات كقطعة أثرية ذات إصدار، راجع: سير عمل API الأصلي لـ Git.

وضع التصميم أولاً في Apidog

وضع التصميم أولاً هو المصمم المرئي داخل Apidog. بدلاً من كتابة OpenAPI يدويًا، تبني العقد خطوة بخطوة من الواجهة.

وضع التصميم أولاً في Apidog

استخدم هذا الوضع عندما تريد بناء API بسرعة دون القلق بشأن صياغة OpenAPI.

خطوات عملية:

  1. افتح مشروعك في Apidog.
  2. انتقل إلى وحدة APIs.
  3. أنشئ endpoint جديدًا.
  4. اختر method والمسار.
  5. أضف parameters.
  6. عرّف body schema عبر محرر الشجرة.
  7. أضف response schema مثل 200, 400, 500.
  8. أرفق أمثلة قابلة للاستخدام في الاختبار والوثائق.

مثال عملي لنقطة نهاية:

GET /users/{id}
Enter fullscreen mode Exit fullscreen mode

المعاملات:

الاسم المكان النوع مطلوب
id path string نعم

استجابة ناجحة:

{
  "id": "usr_123",
  "name": "Ali",
  "email": "ali@example.com"
}
Enter fullscreen mode Exit fullscreen mode

متى يكون هذا الوضع مناسبًا؟

  • عندما لا يكون كل أعضاء الفريق خبراء في OpenAPI.
  • عندما يشارك مدراء المنتجات أو QA في مراجعة العقد.
  • عندما تبدأ API جديدًا من الصفر.
  • عندما تريد تقليل أخطاء الصياغة في YAML/JSON.
  • عندما تحتاج إلى مراجعة منظمة بدل diff نصي طويل.

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

المقايضة الأساسية: إذا كنت تفكر مباشرة بصيغة OpenAPI، قد تبدو النماذج كطبقة إضافية بينك وبين ملف المواصفات.

وضع المواصفات أولاً في Apidog

وضع المواصفات أولاً، المتوفر حاليًا في النسخة التجريبية، مناسب للفرق التي تريد أن يعيش تعريف API داخل Git مثل أي ملف مصدر آخر.

بدلاً من النماذج، تحصل على محرر YAML/JSON على غرار IDE وتكتب OpenAPI أو Swagger مباشرة.

وضع المواصفات أولاً في Apidog

يدعم المحرر:

  • تمييز بناء الجملة.
  • التحقق المضمن.
  • الإكمال التلقائي لمخططات OpenAPI وSwagger.
  • مخططًا تفصيليًا للمسارات والمكونات في الشريط الجانبي.
  • مؤشر مزامنة يوضح حالة التوافق مع المستودع المتصل.

مثال أكثر اكتمالًا:

openapi: 3.0.3
info:
  title: Users API
  version: 1.0.0

paths:
  /users:
    post:
      summary: Create user
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateUserRequest"
      responses:
        "201":
          description: User created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User"

components:
  schemas:
    CreateUserRequest:
      type: object
      required:
        - name
        - email
      properties:
        name:
          type: string
        email:
          type: string
          format: email

    User:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
Enter fullscreen mode Exit fullscreen mode

كيف يعمل Git في وضع المواصفات أولاً

الميزة الأساسية هنا هي المزامنة ثنائية الاتجاه مع Git.

يمكنك توصيل مستودع على:

  • GitHub
  • GitLab
  • Azure DevOps عبر اتصال Git عام

بعد الربط، يمكنك العمل بطريقتين:

1. التحرير من Apidog ثم الدفع إلى Git

  1. افتح ملف المواصفات في Apidog.
  2. عدّل YAML أو JSON.
  3. تحقق من الأخطاء داخل المحرر.
  4. نفّذ commit من التطبيق.
  5. ادفع التغييرات إلى المستودع.

2. التحرير من محرر الكود ثم السحب إلى Apidog

  1. افتح ملف المواصفات في VS Code أو أي محرر.
  2. عدّل الملف.
  3. نفّذ commit وpush.
  4. اسحب التغييرات إلى Apidog.
  5. راجع العقد والوثائق والاختبارات داخل Apidog.

بهذا يصبح Apidog نافذة على ملف المواصفات نفسه، وليس نسخة منفصلة من الحقيقة.

يمكنك قراءة خطوات الإعداد الكاملة في وثائق وضع المواصفات أولاً.

إذا كان فريقك يتعامل مع المواصفات كتعليمات برمجية، راجع أيضًا: مواصفات الـ API كتعليمات برمجية.

مقارنة سريعة بين الوضعين

الجانب وضع التصميم أولاً وضع المواصفات أولاً
المحرر نماذج مرئية وشجرة مخطط محرر YAML/JSON
طريقة التأليف بناء العقد من الواجهة كتابة OpenAPI/Swagger يدويًا
Git فروع داخل Apidog مزامنة ثنائية الاتجاه مع Git
التحقق عبر قيود النماذج تحقق مدمج وإكمال تلقائي
التنقل قائمة endpoints ومجلدات مخطط تفصيلي من ملف المواصفات
منحنى التعلم منخفض أعلى
الأفضل لـ فرق متعددة المهارات فرق هندسية تعتمد Git وPRs

أي وضع تختار؟

استخدم وضع التصميم أولاً إذا:

  • فريقك لا يتقن OpenAPI بالكامل.
  • تحتاج إلى إشراك PM أو QA في تصميم API.
  • تريد بناء endpoint جديد بسرعة.
  • تفضل مراجعة منظمة بدل YAML diff.
  • تريد تقليل أخطاء الصياغة.

استخدم وضع المواصفات أولاً إذا:

  • ملف OpenAPI موجود بالفعل في Git.
  • تراجع تغييرات API عبر pull requests.
  • تشغل فحوصات المواصفات في CI.
  • تريد ملف YAML/JSON واحدًا تستخدمه عدة أدوات.
  • يفضل فريقك العمل داخل محررات الكود.

مسار عملي لكثير من الفرق:

  1. ابدأ بـ التصميم أولاً عند بناء API جديد.
  2. استخدم الواجهة المرئية لتثبيت المسارات والمخططات.
  3. عندما ينضج العقد، انتقل إلى المواصفات أولاً.
  4. اربط المواصفات بـ Git لمراجعتها وإصدارها مع الكود.

الوضعان ليسا منتجين متنافسين. إنهما طريقتان لتحرير العقد نفسه.

كيفية التبديل بين الأوضاع

للتبديل:

  1. افتح مشروعك في Apidog.
  2. انتقل إلى وحدة APIs.
  3. انظر إلى الزاوية السفلية اليسرى.
  4. استخدم محول الوضع للتبديل بين التصميم أولاً والمواصفات أولاً.

عند التبديل، تذكّر:

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

مثال قرار سريع

إذا كان فريقك يقول:

"نريد أن يراجع الجميع تصميم API بسهولة."

ابدأ بـ التصميم أولاً.

إذا كان فريقك يقول:

"نريد مراجعة كل تغيير في API عبر pull request وتشغيل checks في CI."

استخدم المواصفات أولاً.

إذا كان الفريق مختلطًا، استخدم الاثنين:

  • التصميم أولاً للهيكلة السريعة.
  • المواصفات أولاً عند الحاجة إلى Git workflow صارم.

الأسئلة الشائعة

هل المواصفات أولاً هي نفسها العقد أولاً؟

في الممارسة، نعم. كلاهما يعني أنك تكتب مواصفات API قبل التنفيذ وتعاملها كمصدر الحقيقة. في Apidog، وضع المواصفات أولاً هو سير عمل عقد أولاً حيث يكون العقد ملف OpenAPI أو Swagger مكتوبًا يدويًا ومتزامنًا مع Git.

هل يعمل وضع المواصفات أولاً مع GitLab وAzure DevOps؟

نعم. يدعم وضع المواصفات أولاً المزامنة ثنائية الاتجاه مع GitHub وGitLab مباشرة. ويعمل Azure DevOps عبر اتصال Git عام، مما يسمح بمزامنة ملف المواصفات مع مستودع مستضاف على Azure.

هل يمكنني التبديل من التصميم أولاً إلى المواصفات أولاً دون فقدان عملي؟

نعم. كلا الوضعين يقرآن ويكتبان العقد الأساسي نفسه. عند تبديل الوضع من أسفل يسار وحدة APIs، تبقى نقاط النهاية والمخططات والأمثلة سليمة. أنت تبدل المحرر، وليس البيانات.

الخلاصة

اختر الوضع بناءً على طريقة عمل الفريق، لا بناءً على الأداة فقط:

  • إذا أردت سرعة وسهولة مشاركة، استخدم التصميم أولاً.
  • إذا أردت Git وPRs وملف مواصفات كمصدر مركزي، استخدم المواصفات أولاً.
  • إذا تغيّرت احتياجاتك، بدّل الوضع من وحدة APIs واستمر على العقد نفسه.

جرّب بناء endpoint واحدة بالطريقتين، ثم اختر السطح الذي يجعل مراجعة العقد وتحديثه أسهل لفريقك.

Top comments (0)