تخطَّ إلى المحتوى

مواصفة التحقق

يصف هذا المستند هيكل ومحتويات مواصفة التحقق المنشورة من مشروع api-specs-enriched.

تدمج مواصفة التحقق قيود التحقق من صحة API وقيم الإعداد الافتراضية وبيانات تعريف التهيئة في ملف JSON واحد. تُولَّد هذه المواصفة من مواصفات OpenAPI المحسّنة وتُنشر جنبًا إلى جنب معها.

موقع النشر: docs/specifications/api/validation.json

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"version": "2.1.0",
"generated_at": "2026-01-17T12:00:00Z",
"source": "api-specs-enriched",
"required_fields": { ... },
"enum_values": { ... },
"constraints": { ... },
"patterns": [ ... ],
"conditional_requirements": { ... },
"minimum_configurations": { ... },
"defaults": { ... },
"extensions": { ... }
}

يحدد الحقول المطلوبة لكل نوع عملية لكل مورد.

{
"required_fields": {
"common": {
"all_operations": ["metadata.name", "metadata.namespace"]
},
"resources": {
"origin_pool": {
"create": ["metadata.name", "metadata.namespace", "spec.origin_servers", "spec.port"],
"update": ["metadata.name", "metadata.namespace"],
"minimum_config": ["metadata.name", "metadata.namespace", "spec.origin_servers", "spec.port"]
}
}
}
}

يعرّف القيم المسموح بها للحقول المقيّدة.

{
"enum_values": {
"loadbalancer_algorithm": {
"description": "Load balancing algorithm for distributing traffic across origin servers",
"values": [
{"value": "ROUND_ROBIN", "description": "Each healthy endpoint selected in round robin order"},
{"value": "LEAST_REQUEST", "description": "Endpoint with fewest active requests selected"},
{"value": "RING_HASH", "description": "Consistent hashing using ring hash of endpoint names"},
{"value": "RANDOM", "description": "Random healthy endpoint selection"},
{"value": "LB_OVERRIDE", "description": "Hash policy inherited from parent load balancer"}
],
"default": "ROUND_ROBIN"
}
}
}

الإعدادات الافتراضية للتحقق على مستوى النوع والقواعد المستندة إلى الأنماط.

{
"constraints": {
"type_defaults": {
"string": {"minLength": 0, "maxLength": 1024},
"integer": {"minimum": 0, "maximum": 2147483647}
}
}
}

قواعد التحقق المستندة إلى أنماط أسماء الحقول مع درجات الثقة.

{
"patterns": [
{
"pattern": "\\bport$",
"constraints": {"minimum": 1, "maximum": 65535},
"confidence": 0.99,
"description": "Valid TCP/UDP port range"
},
{
"pattern": "\\bname$",
"constraints": {
"minLength": 1,
"maxLength": 63,
"pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
},
"confidence": 0.90,
"description": "Kubernetes-style naming convention"
}
]
}

جميع القيم الافتراضية منظّمة حسب نوع المورد في هيكل موحّد.

{
"defaults": {
"description": "All default values organized by resource type",
"resources": {
"healthcheck": {
"server_applied": {
"jitter": 0,
"jitter_percent": 0
},
"recommended": {
"timeout": 3,
"interval": 15,
"unhealthy_threshold": 1,
"healthy_threshold": 3,
"jitter_percent": 30
},
"oneof_recommended": {
"health_check": "http_health_check"
},
"nested_recommended": {
"http_health_check": {
"path": "/",
"use_http2": false,
"expected_status_codes": ["200"],
"use_origin_server_name": {}
}
}
},
"origin_pool": {
"server_applied": {
"no_tls": {},
"healthcheck": [],
"loadbalancer_algorithm": "ROUND_ROBIN",
"endpoint_selection": "DISTRIBUTED"
},
"recommended": {
"port": 443,
"connection_timeout": 2000,
"http_idle_timeout": 300000
},
"advanced_options": {
"connection_timeout": 2000,
"http_idle_timeout": 300000,
"same_as_endpoint_port": {},
"default_circuit_breaker": {},
"disable_outlier_detection": {}
},
"oneof_choices": {
"port_choice": "port",
"tls_choice": "no_tls",
"circuit_breaker_choice": "default_circuit_breaker"
},
"ui_vs_server": {
"loadbalancer_algorithm": {
"ui_default": "LB_OVERRIDE",
"server_default": "ROUND_ROBIN",
"note": "UI preselects LB_OVERRIDE but server applies ROUND_ROBIN if omitted"
}
}
},
"app_firewall": {
"server_applied": {
"allow_all_response_codes": {},
"default_anonymization": {},
"monitoring": {}
}
}
}
}
}

فئات الإعدادات الافتراضية

Section titled “فئات الإعدادات الافتراضية”
الفئةالوصفالمصدر
server_appliedالقيم التي يطبّقها API عند حذف الحقولاختبار API المباشر
recommendedالقيم المُعبّأ مسبقًا في وحدة تحكم F5 XC على الويبتحليل واجهة المستخدم
advanced_optionsالإعدادات الافتراضية المتداخلة داخل كائنات advanced_optionsاكتشاف API
oneof_choicesاختيارات متغير OneOf الافتراضيةسلوك API
oneof_recommendedمتغيرات OneOf الموصى بهاإعدادات وحدة التحكم الافتراضية
nested_recommendedالقيم الموصى بها للمخططات المتداخلةتحليل واجهة المستخدم
ui_vs_serverالحالات التي تختلف فيها إعدادات واجهة المستخدم عن إعدادات API الافتراضيةتحليل مقارن

الحقول المتنافية وتبعيات الشرط.

{
"conditional_requirements": {
"resources": {
"healthcheck": {
"mutually_exclusive": [
{
"fields": ["spec.http_health_check", "spec.tcp_health_check", "spec.udp_icmp_health_check"],
"reason": "Choose exactly one health check type"
}
],
"conditional": []
}
}
}
}

الحدّ الأدنى من التهيئات القابلة للتطبيق مع أمثلة عملية.

{
"minimum_configurations": {
"resources": {
"origin_pool": {
"description": "Backend origin servers for load balancing",
"example": {
"metadata": {"name": "backend-pool", "namespace": "default"},
"spec": {
"origin_servers": [{"public_name": {"dns_name": "backend1.example.com"}}],
"port": 8080
}
}
}
}
}
}

تُضمّن مواصفات OpenAPI المحسّنة بيانات تعريف التحقق باستخدام هذه الامتدادات:

الامتدادالغرضالموقع
x-f5xc-required-forالحقول المطلوبة حسب السياقخصائص المخطط
x-f5xc-server-defaultيُشير إلى الإعدادات الافتراضية المطبّقة من الخادمخصائص المخطط
x-f5xc-recommended-valueقيمة افتراضية موصى بهاخصائص المخطط
x-f5xc-recommended-oneof-variantمتغير OneOf الموصى بهتعريفات المخطط
x-f5xc-conditionsالمتطلبات الشرطيةخصائص المخطط
x-f5xc-minimum-configurationأمثلة الحدّ الأدنى من التهيئةتعريفات المخطط
x-f5xc-validationالقيود المستخلصة من الاكتشافخصائص المخطط
المصدرالرابط
GitHub Pageshttps://f5-sales-demo.github.io/api-specs-enriched/specifications/api/validation.json
Raw GitHubhttps://raw.githubusercontent.com/f5-sales-demo/api-specs-enriched/main/docs/specifications/api/validation.json

بعد تشغيل خط الأنابيب: docs/specifications/api/validation.json

تتبع مواصفة التحقق الإصدار الدلالي في حقل version:

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

عند توفير قيود من مصادر متعددة، تكون أولوية التوفيق على النحو التالي:

  1. موجود - القيود في مواصفة OpenAPI الأصلية (الأولوية الأعلى)
  2. اكتشاف - القيود من اكتشاف API المباشر
  3. مُستنتج - القيود من مطابقة الأنماط (الأولوية الأدنى)
الإصدارالتاريخالتغييرات
2.1.22026-01-18إعادة كتابة كمرجع API خالص؛ إضافة فئتَي oneof_recommended وnested_recommended
2.1.02026-01-18هيكل موحّد للإعدادات الافتراضية يحلّ محل الأقسام المتفرقة
2.0.02026-01-15مواصفة التحقق الأولية