تحرير مواصفات واجهة برمجة التطبيقات (API) يدويًا عمل دقيق وصعب. إعادة تسمية حقل، أو إضافة قيمة تعداد (enum)، أو جعل حقل مطلوبًا: كل تغيير صغير، لكنه يجب أن يستقر في مكانه الصحيح دون كسر نقاط النهاية (endpoints) التي تعتمد عليه. هذه مهمة مثالية لوكيل ذكاء اصطناعي، بشرط أن يمتلك ضوابط تمنعه من إتلاف المخطط بالكامل.
يوفر Apidog CLI ما يحتاجه الوكيل لتعديل المواصفات بمسؤولية: التحقق من صحة المخطط قبل الكتابة، والعمل على فرع معزول، وفتح طلب دمج للمراجعة.
هذا الدليل هو الرفيق لعملية الإنشاء التي تسمح لوكيل الذكاء الاصطناعي بإنشاء وثائق واجهة برمجة التطبيقات. إنشاء الوثائق عملية إضافية ومنخفضة المخاطر، أما تعديل عقد API موجود فهو الحالة التي تحتاج فيها إلى وسائل حماية واضحة.
ماذا يعني «تحديث المواصفات» في واجهة سطر الأوامر (CLI)؟
تتكون مواصفاتك في Apidog من نقاط النهاية ومخططات البيانات داخل المشروع. عمليًا، ستستخدم أحد هذه الأوامر:
-
endpoint update: لتغيير مسار أو معامل أو استجابة. -
schema update: لتغيير نموذج بيانات تستخدمه نقاط النهاية. -
import: لاستيراد ملف OpenAPI كامل ومطابقته مع المشروع.
قبل أن تمنح وكيلًا صلاحية تنفيذ أي منها، افهم قاعدتين أساسيتين:
- نموذج الأذونات.
- سلوك
updateالذي قد يحذف بيانات بصمت عند استخدامه بشكل خاطئ.
القاعدة الأهم: update هو استبدال كامل وليس Patch
أوامر update في CLI ليست JSON Patch. ترسل الحقول التي تزودها كما هي، ولا تدمج عناصر المصفوفات حسب المعرّف (ID).
مثلًا، إذا أرسلت تحديثًا يحتوي على مصفوفة parameters جزئية لتعديل معامل واحد، فأنت لا تعدّل ذلك المعامل فقط؛ بل تستبدل المصفوفة كاملة بالمحتوى الذي أرسلته. أي معاملات لم ترسلها ستختفي.
استخدم دائمًا تسلسل قراءة → تعديل → تحقق → كتابة على الكائن الكامل:
# 1. جلب المورد الحالي بالكامل
apidog endpoint get <endpointId> --project <projectId>
# 2. تعديل البنية الكاملة محليًا مع الاحتفاظ بكل الحقول غير المعدّلة
# 3. التحقق من صحة الكائن الكامل مقابل المخطط
apidog cli-schema get endpoint-create
apidog cli-schema validate endpoint-create --file ./endpoint-full.json
# 4. إعادة كتابة الكائن الكامل
apidog endpoint update <endpointId> --project <projectId> --file ./endpoint-full.json
ضع هذه القاعدة صراحة في تعليمات الوكيل:
لا ترسل أبدًا كائنًا جزئيًا إلى
update. اجلب المورد كاملًا، وعدّله، ثم أعد إرساله كاملًا.
تخطي خطوة get قد يؤدي إلى حذف حقول بصمت. وتشغيل cli-schema validate قبل الكتابة يكشف الأخطاء قبل وصولها إلى المشروع.
المسار الآمن: اجعل الوكيل يعمل على فرع ذكاء اصطناعي
يمكنك منح الوكيل إذن التحرير المباشر على الفرع الرئيسي، لكن لا تبدأ بهذه الطريقة. استخدم فرع الذكاء الاصطناعي (AI branch) لعزل التغييرات:
- يعدّل الوكيل الموارد دون لمس الفرع المصدر.
- لا تُدمج التغييرات تلقائيًا.
- تراجع الفروقات قبل الموافقة.
- يمكنك التخلص من الفرع بالكامل إذا أخطأ الوكيل.
فكر فيه كطلب سحب (Pull Request) لمواصفات API.
الخطوة 1: إنشاء فرع الذكاء الاصطناعي
apidog branch create --project <projectId> --type ai \
--from main --name "ai/20260713-from-main-refund-fields"
استخدم اصطلاح تسمية واضحًا مثل:
ai/YYYYMMDD-from-source-feature
يجب أن يشير --from إلى فرعك الرئيسي أو فرع سباق (sprint branch) عادي، وليس فرعًا عامًا.
يُؤرشف فرع الذكاء الاصطناعي الذي لا يختلف عن مصدره تلقائيًا بعد 24 ساعة، لذلك لا تتراكم التجارب المهملة.
الخطوة 2: استيراد الموارد التي سيعدلها الوكيل
يبدأ فرع الذكاء الاصطناعي فارغًا؛ فهو لا ينسخ محتوى الفرع المصدر تلقائيًا.
قبل تعديل نقطة نهاية أو مخطط موجود، انقله إلى الفرع باستخدام pick-to:
apidog branch pick-to --project <projectId> --type ai \
--from main --to "ai/20260713-from-main-refund-fields" \
--endpoint-ids <ids>
الموارد الجديدة التي ينشئها الوكيل على الفرع لا تحتاج إلى هذه الخطوة. استخدمها فقط للموارد الموجودة التي تريد تعديلها أو حذفها.
الخطوة 3: نفّذ التعديل على الفرع المعزول
بعد نقل المورد إلى الفرع، شغّل دورة القراءة والتعديل والكتابة مع تحديد --branch:
apidog endpoint get <endpointId> --project <projectId> \
--branch "ai/20260713-from-main-refund-fields"
apidog endpoint update <endpointId> --project <projectId> \
--branch "ai/20260713-from-main-refund-fields" \
--file ./endpoint-full.json
يبقى فرعك الرئيسي دون أي تعديل. وإذا أخطأ الوكيل، يكون الأثر محصورًا في فرع يمكن أرشفته.
الخطوة 4: راجع الفروقات ثم ادمج
لا تُكتب تغييرات فرع الذكاء الاصطناعي تلقائيًا إلى الفرع الرئيسي. بعد انتهاء الوكيل، راجع ما تغيّر أولًا.
إذا كان الفرع الهدف محميًا، افتح طلب دمج بدل الدمج المباشر:
apidog merge-request --help
apidog branch merge --project <projectId> --type ai \
--from "ai/20260713-from-main-refund-fields" \
--to main --endpoint-ids <ids>
يتطلب الدمج المباشر من CLI إذن تحرير مباشر على الفرع المصدر والفرع الهدف. إذا كان main محميًا، استخدم merge-request ثم وافق على الطلب من عميل Apidog.
مثال عملي: إعادة تسمية حقل بأمان
لنفترض أنك تريد إعادة تسمية الحقل amount إلى amountCents في نموذج البيانات Refund، لأن القيمة أصبحت تمثل سنتات كعدد صحيح.
يمكنك إعطاء الوكيل هذه التعليمات:
أعد تسمية الحقل
amountفي مخططRefundإلىamountCentsواجعله من النوع عدد صحيح.
يجب أن يبدأ الوكيل بجلب المخطط كاملًا من فرع الذكاء الاصطناعي:
# 1. جلب المخطط الكامل الحالي من فرع الذكاء الاصطناعي
apidog schema get <refundSchemaId> --project $PID \
--branch "ai/20260713-from-main-refund-fields"
ثم يعدّل كائن jsonSchema بالكامل، لا الخاصية المتغيرة فقط:
{
"name": "Refund",
"jsonSchema": {
"type": "object",
"required": ["orderId", "amountCents"],
"properties": {
"orderId": { "type": "string" },
"amountCents": { "type": "integer" },
"reason": { "type": "string" }
}
}
}
لاحظ أن orderId وreason بقيتا كما هما. هذا ضروري لأن update يستبدل الكائن بدل دمجه.
بعد ذلك، تحقّق من صحة الملف ثم اكتب التغيير على فرع الذكاء الاصطناعي:
# 2. التحقق من صحة الكائن الكامل
apidog cli-schema validate schema-create --file ./refund-full.json
# 3. كتابة التحديث على فرع الذكاء الاصطناعي
apidog schema update <refundSchemaId> --project $PID \
--branch "ai/20260713-from-main-refund-fields" \
--file ./refund-full.json
راجع الفروقات، وتأكد من أن التغيير يقتصر على إعادة تسمية الحقل، ثم ادمج الفرع.
أوقف التغييرات المسببة للأعطال قبل الدمج
إعادة تسمية حقل مطلوب هي تغيير مسبب للأعطال (breaking change). أي عميل يرسل amount بدل amountCents سيفشل في التحقق من الصحة.
أضف قاعدة تصنيف صريحة إلى تعليمات الوكيل:
قبل دمج أي تغيير في المواصفات، صنّفه:
- غير مسبب للأعطال:
حقل اختياري جديد، نقطة نهاية جديدة، أو تخفيف قيد
→ لخّص التغيير وانتقل إلى طلب الدمج.
- مسبب للأعطال:
حقل تمت إعادة تسميته أو حذفه، حقل مطلوب جديد، أو تضييق نوع/قيد
→ توقّف.
أبلغ عن التغيير المسبب للأعطال ونقاط النهاية المتأثرة،
ثم انتظر موافقة بشرية صريحة.
فرع الذكاء الاصطناعي يجعل هذه القاعدة فعالة: لا يمكن أن يصل التغيير إلى الفرع الرئيسي قبل المراجعة والموافقة.
التحديث من ملف OpenAPI
أحيانًا يكون التغيير موجودًا بالفعل في ملف OpenAPI تم إنشاؤه من التعليمات البرمجية، أو عدّله فريق آخر، أو يمثل مصدر الحقيقة الخارجي.
بدل إعادة تنفيذ تعديلات حقلًا بحقل، استورد الملف إلى فرع الذكاء الاصطناعي:
apidog import --project <projectId> --format openapi \
--file ./openapi.json \
--branch "ai/20260713-from-main-refund-fields"
يقبل import ملفات OpenAPI 3.x وSwagger 2.0 وPostman وغيرها.
شغّل الاستيراد على فرع الذكاء الاصطناعي أولًا، ثم راجع الفروقات قبل الدمج. بعد الدمج، صدّر المواصفات للتحقق من النتيجة:
apidog export --project <projectId> --format openapi \
--oas-version 3.1 --output ./openapi.json
استخدم هذا المسار عندما يكون مصدر الحقيقة خارج Apidog. أما تحديثات update الدقيقة فهي الأنسب عندما يكون Apidog هو مصدر الحقيقة.
عندما يخطئ الوكيل: التراجع
إذا أنتج الوكيل تغييرًا غير مرغوب فيه، فلا تدمجه. أرشف الفرع وتابع العمل:
apidog branch archive "ai/20260713-from-main-refund-fields" \
--project <projectId> --type ai
بما أن التعديلات بقيت في فرع معزول، فالفرع الرئيسي يظل صحيحًا. هذا هو الفرق بين وكيل يعمل على فرع ووكيل يكتب مباشرة إلى main: الفرع هو زر التراجع العملي.
ملاحظة حول الأذونات
إذا تم حظر update أو import، فقد يكون المشروع قد عطّل أذونات تحرير الذكاء الاصطناعي الخارجي.
استخدم سير عمل فرع الذكاء الاصطناعي في هذه الحالة: يحرر الوكيل فرعًا معزولًا، ثم توافق أنت على الدمج.
إذا كنت تريد السماح بالتعديلات المباشرة، ستجد الإعداد في:
Project Settings → Feature Settings → AI Feature Settings
يتوفر ذلك في عميل Apidog 2.8.32 أو أحدث. عندما يصطدم الوكيل بحاجز أذونات، اجعله يوضح المشكلة ويطلب قرارًا بشريًا بدل البحث عن حل بديل بصمت.
المشاكل الشائعة
التحديث الجزئي يحذف الحقول
updateيستبدل ولا يدمج. اجلب الكائن كاملًا، وعدّله كاملًا، وتحقق من صحته، ثم أرسله.تعديل مورد موجود على فرع AI دون نقله إليه
يبدأ الفرع فارغًا. استخدمpick-toقبل التعديل.استخدام قيمة خاطئة مع
--from
يجب أن يكون المصدر فرعًا رئيسيًا أو فرع سباق، وليس فرعًا عامًا.تجاوز التحقق من الصحة
استخدمcli-schema validateقبل أي كتابة. هذا يمنع وصول حمولة غير صحيحة إلى المشروع.دمج تغيير مسبب للأعطال بصمت
اجعل تصنيف التغيير خطوة إلزامية قبل فتح طلب الدمج أو تنفيذه.
الأسئلة الشائعة
هل يمكن للوكيل تعديل الفرع الرئيسي مباشرة؟
نعم، عبر تمكين أذونات تحرير الذكاء الاصطناعي الخارجي. لكن البدء بفرع ذكاء اصطناعي أكثر أمانًا لأن التغييرات لا تصل إلىmainقبل الموافقة.ما الفرق بين
branch mergeوmerge-request؟
ينفذbranch mergeالدمج مباشرة ويتطلب أذونات تحرير على الفرعين. أماmerge-requestفيفتح طلبًا قابلًا للمراجعة، وهو الخيار الأفضل للفرع الرئيسي المحمي.هل يحتاج الوكيل إلى تطبيق Apidog لسطح المكتب؟
لا. CLI مستقل. تحتاج التطبيق فقط لتغيير إعداد أذونات تحرير الذكاء الاصطناعي الخارجي.كيف أتأكد من أن الوكيل لا يخترع أسماء حقول؟
استخدم تسلسلcli-schema getثمvalidate. يجب أن تفشل الحمولة التي تحتوي على حقل غير صالح أثناء التحقق المحلي قبل أن تصل إلى المشروع.
خاتمة
تحديث وكيل ذكاء اصطناعي لمواصفات API يصبح آمنًا عند تطبيق ثلاث قواعد:
- العمل على فرع ذكاء اصطناعي معزول.
- التعامل مع كل
updateكعملية قراءة-تعديل-كتابة كاملة. - اشتراط مراجعة بشرية قبل الدمج، خصوصًا للتغييرات المسببة للأعطال.
يوفر Apidog CLI هذه الخطوات كأوامر قابلة للبرمجة والتدقيق. ابدأ بإنشاء فرع AI، وأضف قاعدة القراءة-التعديل-الكتابة إلى تعليمات الوكيل، واجعل التغييرات المسببة للأعطال نقطة توقف إلزامية.
ولإكمال دورة الإنشاء والصيانة، اقرن هذا النهج مع السماح لوكيل بإنشاء وثائق API.
Top comments (0)