NRNIC API

ทุกอย่างที่ทำได้ในแดชบอร์ดบนเว็บ (เพิ่มและลบโดเมน จัดการเรคคอร์ด DNS) ก็ใช้งานผ่านโปรแกรมได้ด้วย REST API

ภาพรวม

ทุก endpoint รับและส่งข้อมูลเป็น JSON การยืนยันตัวตนต้องใช้ API Key (ดูด้านล่าง) ขณะนี้ยังไม่มีการแบ่งหน้าและยังไม่จำกัดจำนวนคำขอ

Base URL

https://ns.nrnic.com/api

การยืนยันตัวตน

คุณสร้าง API Key ได้จากตั้งค่าบัญชี คีย์ที่สร้างใหม่จะแสดงเพียงครั้งเดียว กรุณาบันทึกไว้ในที่ปลอดภัย

ใส่ header Authorization ต่อไปนี้ในทุกคำขอ:

Authorization: Bearer nrnic_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ข้อควรระวังด้านความปลอดภัย

ดูแล API Key เหมือนรหัสผ่าน ห้ามอัปโหลดขึ้นที่เก็บโค้ดสาธารณะหรือฝังใน JavaScript ฝั่งไคลเอนต์ ให้ใช้จากโค้ดฝั่งเซิร์ฟเวอร์เท่านั้น หากคีย์รั่วไหล ให้เพิกถอนทันทีในหน้าตั้งค่าบัญชีแล้วสร้างคีย์ใหม่

การตอบกลับเมื่อเกิดข้อผิดพลาด

เมื่อเกิดข้อผิดพลาด ระบบจะตอบกลับด้วยรหัสสถานะ HTTP ที่เหมาะสม (401/404/409/422/500 เป็นต้น) และ JSON ในรูปแบบต่อไปนี้

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

รายการ endpoint

เมธอด พาธ คำอธิบาย
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)