واجهة برمجة الإصدارات
عرض سجل النشر ولقطات إصدارات النماذج الخاصة بك.
تتيح لك واجهة برمجة الإصدارات عرض سجل نشر النموذج. في كل مرة تنشر فيها نموذجاً، يُنشئ NueForm لقطة مُرقَّمة تحتوي على كامل إعدادات النموذج وجميع الأسئلة في تلك اللحظة. تتضمن الإصدارات أيضاً سجل تغييرات يُلخّص ما تغيّر منذ آخر نشر.
تستخدم جميع هياكل الاستجابة أسماء حقول بتنسيق snake_case.
عرض إصدارات النموذج
/api/v1/forms/:id/versionsيُرجع جميع الإصدارات المنشورة لنموذج، مُرتَّبة حسب رقم الإصدار (الأحدث أولاً). يتضمن كل إصدار لقطة كاملة للنموذج وسجل تغييرات بما تم تعديله.
معاملات المسار
idstringمطلوبمعرّف النموذج
حقول الاستجابة
idstringمعرّف الإصدار الفريد
form_idstringالنموذج الذي ينتمي إليه هذا الإصدار
versionintegerرقم الإصدار التسلسلي (1، 2، 3، ...)
published_bystringمعرّف المستخدم الذي نشر هذا الإصدار
published_by_namestringالاسم المعروض للشخص الذي نشر
created_atstringطابع زمني بتنسيق ISO 8601 لوقت نشر هذا الإصدار
changelogarrayقائمة التغييرات منذ الإصدار السابق
changelog[].typestringنوع التغيير (انظر أنواع إدخالات سجل التغييرات أدناه)
changelog[].descriptionstringوصف مقروء للتغيير
snapshotobjectحالة النموذج الكاملة وقت النشر (تشمل جميع حقول النموذج والأسئلة)
أنواع إدخالات سجل التغييرات
form_createdstringتم إنشاء النموذج في البداية
publishedstringحدث نشر (يتضمن رقم الإصدار)
question_addedstringتمت إضافة سؤال جديد
question_updatedstringتم تعديل سؤال موجود
question_deletedstringتم حذف سؤال
question_reorderedstringتم إعادة ترتيب الأسئلة
theme_changedstringتم تعديل خاصية في القالب
settings_changedstringتم تعديل إعداد في النموذج
title_changedstringتم تغيير عنوان النموذج
description_changedstringتم تغيير وصف النموذج
الاستجابة
{
"versions": [
{
"id": "66c3d4e5f6a7b8c9d0e1f2a3",
"form_id": "665a1b2c3d4e5f6a7b8c9d0e",
"version": 3,
"published_by": "665a0a1b2c3d4e5f6a7b8c9d",
"published_by_name": "Alice Johnson",
"created_at": "2026-02-28T14:00:00.000Z",
"changelog": [
{
"type": "question_updated",
"description": "Updated question: \"How did you hear about us?\""
},
{
"type": "question_added",
"description": "Added question: \"Would you recommend us to a friend?\""
},
{
"type": "theme_changed",
"description": "Changed theme color from #6366f1 to #2563eb"
}
],
"snapshot": {
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"theme_color": "#2563eb",
"background_color": "#ffffff",
"show_progress_bar": true,
"questions": [
{
"id": "66a1b2c3d4e5f6a7b8c9d001",
"type": "short_text",
"title": "What is your name?",
"required": true,
"order": 0,
"properties": {}
},
{
"id": "66a1b2c3d4e5f6a7b8c9d002",
"type": "multiple_choice",
"title": "How did you hear about us?",
"required": true,
"order": 1,
"properties": {
"choices": [
{ "label": "Search engine" },
{ "label": "Social media" },
{ "label": "Friend or colleague" },
{ "label": "Other" }
]
}
},
{
"id": "66a1b2c3d4e5f6a7b8c9d004",
"type": "yes_no",
"title": "Would you recommend us to a friend?",
"required": false,
"order": 2,
"properties": {}
}
]
}
},
{
"id": "66c2d3e4f5a6b7c8d9e0f1a2",
"form_id": "665a1b2c3d4e5f6a7b8c9d0e",
"version": 2,
"published_by": "665a0a1b2c3d4e5f6a7b8c9d",
"published_by_name": "Alice Johnson",
"created_at": "2026-02-15T10:30:00.000Z",
"changelog": [
{
"type": "question_added",
"description": "Added question: \"How did you hear about us?\""
}
],
"snapshot": { ... }
},
{
"id": "66c1d2e3f4a5b6c7d8e9f0a1",
"form_id": "665a1b2c3d4e5f6a7b8c9d0e",
"version": 1,
"published_by": "665a0a1b2c3d4e5f6a7b8c9d",
"published_by_name": "Alice Johnson",
"created_at": "2026-01-15T10:30:00.000Z",
"changelog": [
{
"type": "form_created",
"description": "Created form"
}
],
"snapshot": { ... }
}
]
}
أمثلة على الكود
curl -X GET "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/versions" \
-H "Authorization: Bearer YOUR_API_KEY"
كيف يعمل نظام الإصدارات
- التحرير -- قم بإجراء تغييرات على نموذجك (إضافة أسئلة، تحديث القالب، تعديل الإعدادات). يتم تعيين علامة
has_unpublished_changesللنموذج إلىtrue. - النشر -- استدعِ
POST /api/v1/forms/:id/publishلإنشاء إصدار جديد. يأخذ NueForm لقطة من حالة النموذج الحالية ويسجّل التغييرات ويزيد رقم الإصدار. - النموذج المباشر -- يرى المستجيبون دائماً آخر إصدار منشور. يشير
published_version_idفي النموذج إلى الإصدار النشط. - إلغاء النشر -- استدعِ
DELETE /api/v1/forms/:id/publishلإيقاف النموذج عن العمل. يتم الاحتفاظ بسجل الإصدارات.
قد تختلف حالة النموذج الحالية (القابلة للتحرير عبر واجهة برمجة النماذج) عن آخر إصدار منشور إذا تم إجراء تعديلات بعد آخر نشر.
استجابات الأخطاء
استجابات الأخطاء القياسية التي تُرجعها نقطة النهاية هذه.
رموز الأخطاء
401Unauthorizedمفتاح API مفقود أو غير صالح
403Forbiddenصلاحيات غير كافية لنماذج الفريق
404Not Foundالنموذج غير موجود
500Server Errorخطأ داخلي في الخادم
مثال على خطأ
{
"error": "Form not found"
}