NRNIC API

كل ما يمكنك فعله في لوحة التحكم على الويب (إضافة النطاقات وحذفها، وإدارة سجلات DNS) متاح أيضًا برمجيًا عبر واجهة REST API.

نظرة عامة

تستقبل جميع نقاط النهاية بيانات JSON وتعيدها. تتطلب المصادقة مفتاح API (انظر أدناه). لا يوجد حاليًا ترقيم للصفحات ولا حد لعدد الطلبات.

عنوان URL الأساسي

https://ns.nrnic.com/api

المصادقة

يمكنك إنشاء مفتاح API من إعدادات الحساب. يُعرض المفتاح الجديد مرة واحدة فقط، لذا احرص على حفظه في مكان آمن.

أضف ترويسة Authorization التالية في كل طلب:

Authorization: Bearer nrnic_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ملاحظات أمنية

تعامل مع مفتاح API كما تتعامل مع كلمة المرور. لا ترفعه أبدًا إلى مستودع عام ولا تضمّنه في JavaScript من جهة العميل، بل استخدمه فقط في الشيفرة من جهة الخادم. إذا تسرّب المفتاح، فألغِه فورًا من إعدادات الحساب وأنشئ مفتاحًا جديدًا.

استجابات الأخطاء

عند حدوث خطأ، تستخدم الاستجابة رمز حالة HTTP المناسب (401/404/409/422/500 وغيرها) مع بنية JSON التالية.

{
  "error": {
    "code": "domain_not_found",
    "message": "Domain not found."
  }
}

نقاط النهاية

الطريقة المسار الوصف
GET/api/domainsعرض قائمة النطاقات الخاصة بالمستخدم الموثَّق
POST/api/domainsإضافة نطاق
GET/api/domains/{id}جلب نطاق مع حالة مزامنة NS وحالة التفويض
DELETE/api/domains/{id}حذف نطاق
POST/api/domains/{id}/resyncإعادة إرسال منطقة DNS إلى جميع خوادم الأسماء (ns1–ns4)
POST/api/domains/{id}/delegation-checkالتحقق مما إذا كان النطاق مفوَّضًا إلى NRNIC
GET/api/domains/{id}/recordsعرض سجلات DNS الخاصة بنطاق
POST/api/domains/{id}/recordsإضافة سجل DNS
PUT/api/domains/{id}/records/{record_id}تحديث سجل DNS
DELETE/api/domains/{id}/records/{record_id}حذف سجل DNS

أمثلة

النطاقات

# عرض قائمة النطاقات الخاصة بالمستخدم الموثَّقcurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

# إضافة نطاقcurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"fqdn": "example.com"}'

# حذف نطاقcurl -s -X DELETE https://ns.nrnic.com/api/domains/123 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

سجلات DNS

# إضافة سجل DNScurl -s https://ns.nrnic.com/api/domains/123/records \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "A", "name": "@", "content": "192.0.2.1", "ttl": 3600}'

# تحديث سجل DNScurl -s -X PUT https://ns.nrnic.com/api/domains/123/records/456 \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "A", "name": "@", "content": "192.0.2.2", "ttl": 3600}'

# حذف سجل DNScurl -s -X DELETE https://ns.nrnic.com/api/domains/123/records/456 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

حقول سجلات DNS

typeنوع السجل. أحد القيم: A وAAAA وCNAME وMX وTXT وNS وSRV وCAA.
nameاسم المضيف (جزء النطاق الفرعي). استخدم "@" لقمة المنطقة.
contentقيمة السجل (عنوان IP أو اسم المضيف الهدف وغير ذلك).
ttlTTL بالثواني، من 60 إلى 604800. القيمة الافتراضية 3600 عند عدم تحديدها.
priorityالأولوية لسجلات MX/SRV (0–65535).
weightالوزن لسجلات SRV (0–65535).
portرقم المنفذ لسجلات SRV (0–65535).