VPS.org API

ឯកសារ REST API

API គ្រប់គ្រង DNS

គ្រប់គ្រងតំបន់ DNS និងកំណត់ត្រាតាមកម្មវិធីសម្រាប់ដែនរបស់អ្នក។

ចំណុចបញ្ចប់ ចំណុចបញ្ចប់ចំនួន ៤
ផ្លូវមូលដ្ឋាន /api/v1/dns-zones
ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ ត្រូវការ​តួអក្សរ​តំណាង​អ្នក​ផ្ទុក

ទិដ្ឋភាពទូទៅ

DNS API ផ្តល់ការគ្រប់គ្រងពេញលេញនៃតំបន់ DNS និងកំណត់ត្រា។ តំបន់ទាំងអស់ត្រូវបានរៀបចំនៅលើម៉ាស៊ីនបម្រើឈ្មោះដែលមានសិទ្ធិអំណាចរបស់ VPS.org ជាមួយការបង្កើតនិងបញ្ជូនឯកសារតំបន់ BIND9 ដោយស្វ័យប្រវត្តិ។

ហេដ្ឋារចនាសម្ព័ន្ធ​ម៉ាស៊ីន​បម្រើ​ឈ្មោះ

លក្ខណៈ​ពិសេស​សំខាន់

ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ

សំណើ API DNS ទាំងអស់ត្រូវការការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវរបស់ Token Bearer ។ បង្កើត Token API ពីអេក្រង់គ្រប់គ្រងគណនីរបស់អ្នកនៅ /account/developers/ ជាមួយ​នឹង​សិទ្ធិ​ដូច​ខាង​ក្រោម & # 160; ៖

ឧទាហរណ៍

Authorization: Bearer vps_abc123def456...
សំខាន់ & # 160; ៖ សញ្ញា​សម្គាល់ API ត្រូវ​បាន​បង្ហាញ​តែ​ម្តង​ក្នុង​អំឡុង​ពេល​បង្កើត & # 160; ។ រក្សា​ទុក​ពួក​វា​ឲ្យ​មាន​សុវត្ថិភាព & # 160; ។ ប្រសិន​បើ​អ្នក​បាត់បង់​សញ្ញា​សម្គាល់ អ្នក​ត្រូវ​តែ​បង្កើត​មួយ​ថ្មី & # 160; ។
ទទួលបាន /api/v1/dns-zones/

រាយបញ្ជីតំបន់ DNS ទាំងអស់

យក​បញ្ជី​ទំព័រ​នៃ​តំបន់ DNS ទាំងអស់​ដែល​ជា​កម្មសិទ្ធិ​របស់​អ្នក​ប្រើ​ដែល​បាន​ផ្ទៀងផ្ទាត់​ភាព​ត្រឹមត្រូវ & # 160; ។ គាំទ្រ​ការ​ត្រង​តាម​ឈ្មោះ​ដែន & # 160; ។

ប៉ារ៉ាម៉ែត្រសំណួរ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
domain string គ្មាន Filter zones by exact domain name (e.g., example.com)

សំណើឧទាហរណ៍

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/dns-zones/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  headers: {'Authorization': 'Bearer YOUR_API_TOKEN'}
});

const zones = await response.json();
console.log(zones);

ឧទាហរណ៍នៃការឆ្លើយតប

[
  {
    "uuid": "abc123-def456-ghi789",
    "domain": "example.com",
    "created_at": "2024-01-15T10:30:00Z",
    "record_count": 12
  },
  {
    "uuid": "xyz789-uvw456-rst123",
    "domain": "myapp.io",
    "created_at": "2024-06-20T14:15:00Z",
    "record_count": 8
  }
]

វាលឆ្លើយតប

វាល ប្រភេទ សេចក្ដី​ពិពណ៌នា
uuid string Unique zone identifier (used in API requests)
domain string Domain name for this DNS zone
created_at datetime Zone creation timestamp (ISO 8601 format)
record_count integer Total number of DNS records in this zone

លេខកូដស្ថានភាពឆ្លើយតប

200 Successfully retrieved DNS zones list
401 Unauthorized - Invalid or missing API token
403 Forbidden - Token lacks dns:list permission
ទទួលបាន /api/v1/dns-zones/{uuid}/

យក​សេចក្ដី​លម្អិត​តំបន់ DNS

យក​ព័ត៌មាន​លម្អិត​អំពី​តំបន់ DNS ជាក់លាក់ រួម​ទាំង​កំណត់​ហេតុ​ទាំងអស់ & # 160; ។

ប៉ារ៉ាម៉ែត្រផ្លូវ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
uuid string បាទ/ចាស៎ Unique zone identifier

ឧទាហរណ៍នៃការឆ្លើយតប

{
  "uuid": "abc123-def456-ghi789",
  "domain": "example.com",
  "created_at": "2024-01-15T10:30:00Z",
  "record_count": 5,
  "records": [
    {
      "uuid": "rec-001",
      "record_type": "A",
      "name": "@",
      "value": "192.0.2.1",
      "ttl": 3600,
      "priority": null,
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "uuid": "rec-002",
      "record_type": "MX",
      "name": "@",
      "value": "mail.example.com",
      "ttl": 3600,
      "priority": 10,
      "created_at": "2024-01-15T10:32:00Z"
    }
  ]
}

លេខកូដស្ថានភាពឆ្លើយតប

200 Successfully retrieved zone details
404 Zone not found or not owned by user
ផ្ញើ​សារ /api/v1/dns-zones/

បង្កើត​តំបន់ DNS

បង្កើត​តំបន់ DNS ថ្មី​សម្រាប់​ដែន & # 160; ។ តំបន់​នឹង​ត្រូវ​បាន​បញ្ជូន​ភ្លាមៗ​ទៅ​ម៉ាស៊ីន​បម្រើ​ឈ្មោះ VPS.org & # 160; ។

ស្នើសុំប៉ារ៉ាម៉ែត្រតួ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
domain string បាទ/ចាស៎ Domain name (e.g., example.com)

សំណើឧទាហរណ៍

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "newdomain.com"}'
import requests

url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {"domain": "newdomain.com"}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({domain: 'newdomain.com'})
});

const zone = await response.json();
console.log(zone);

ឧទាហរណ៍នៃការឆ្លើយតប

{
  "uuid": "new-zone-uuid",
  "domain": "newdomain.com",
  "created_at": "2026-01-18T16:45:00Z",
  "record_count": 0,
  "records": []
}

លេខកូដស្ថានភាពឆ្លើយតប

201 DNS zone created successfully
400 Bad Request - Invalid domain name or zone already exists
403 Forbidden - Token lacks dns:create permission
លុប /api/v1/dns-zones/{uuid}/

លុប​តំបន់ DNS

លុប​តំបន់ DNS និង​កំណត់ហេតុ​ដែល​បាន​ភ្ជាប់​ទាំងអស់​ជា​អចិន្ត្រៃយ៍ & # 160; ។ អំពើ​នេះ​មិន​អាច​មិន​ធ្វើ​វិញ​បាន​ទេ & # 160; ។

ប៉ារ៉ាម៉ែត្រផ្លូវ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
uuid string បាទ/ចាស៎ Unique zone identifier

លេខកូដស្ថានភាពឆ្លើយតប

204 Zone deleted successfully (no response body)
403 Forbidden - Token lacks dns:delete permission
404 Zone not found
ទទួលបាន /api/v1/dns-zones/{uuid}/records/

រាយ​កំណត់ហេតុ DNS ក្នុង​តំបន់

យក​កំណត់ហេតុ DNS ទាំងអស់​សម្រាប់​តំបន់​ជាក់លាក់ (ផ្លូវ​ដែល​បាន​ដាក់​ក្នុង​ចន្លោះ) & # 160; ។

ប៉ារ៉ាម៉ែត្រផ្លូវ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
uuid string បាទ/ចាស៎ Zone UUID

សំណើឧទាហរណ៍

curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

ឧទាហរណ៍នៃការឆ្លើយតប

[
  {
    "uuid": "rec-001",
    "record_type": "A",
    "name": "@",
    "value": "192.0.2.1",
    "ttl": 3600,
    "priority": null,
    "created_at": "2024-01-15T10:30:00Z"
  },
  {
    "uuid": "rec-002",
    "record_type": "MX",
    "name": "@",
    "value": "mail.example.com",
    "ttl": 3600,
    "priority": 10,
    "created_at": "2024-01-15T10:32:00Z"
  }
]
ផ្ញើ​សារ /api/v1/dns-zones/{uuid}/records/

បង្កើត​កំណត់ហេតុ DNS ក្នុង​តំបន់

បន្ថែម​កំណត់ហេតុ DNS ថ្មី​ទៅ​តំបន់​ជាក់លាក់ (ផ្លូវ​ដែល​បាន​ដាក់​ក្នុង​ចន្លោះ) & # 160; ។

ស្នើសុំប៉ារ៉ាម៉ែត្រតួ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
record_type string បាទ/ចាស៎ Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string បាទ/ចាស៎ Record name (@ for root, subdomain, or FQDN)
value string បាទ/ចាស៎ Record value (IP address, hostname, text)
ttl integer No Time to live in seconds (default: 3600)
priority integer For MX/SRV Priority (required for MX and SRV records)

សំណើឧទាហរណ៍

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
  }'
import requests

url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
}

response = requests.post(url, headers=headers, json=data)
print(response.json())

លេខកូដស្ថានភាពឆ្លើយតប

201 DNS record created successfully
400 Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
GET PUT PATCH DELETE /api/v1/dns-records/{uuid}/

គ្រប់គ្រង​កំណត់ហេតុ DNS (ចូលដំណើរការ​ដោយ​ផ្ទាល់)

ប្រតិបត្តិការ CRUD ពេញលេញ​លើ​កំណត់ហេតុ DNS ឯកជន​ដោយ​ប្រើ​កំណត់ហេតុ UUID & # 160; ។

ប្រតិបត្តិការ​ដែល​មាន

ប៉ារ៉ាម៉ែត្រសំណួរ (សម្រាប់ GET / api / v1 / dns-records /)

Parameter ប្រភេទ សេចក្ដី​ពិពណ៌នា
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

ឧទាហរណ៍ & # 160; ៖ ធ្វើ​ឲ្យ​ TTL របស់​កំណត់ហេតុ​ទាន់សម័យ

curl -X PATCH "https://admin.vps.org/api/v1/dns-records/{rec-uuid}/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ttl": 1800}'

Supported DNS Record Types

ប្រភេទ Purpose Example Value Priority Required
A Maps domain to IPv4 address 192.0.2.1 គ្មាន
AAAA Maps domain to IPv6 address 2001:0db8::1 គ្មាន
CNAME Creates alias to another domain example.com គ្មាន
MX Mail server for domain mail.example.com បាទ/ចាស៎
TXT Text record (SPF, DKIM, verification) v=spf1 include:_spf.google.com ~all គ្មាន
NS Nameserver delegation ns1.example.com គ្មាន
SRV Service location record 10 5060 sip.example.com បាទ/ចាស៎
CAA Certificate authority authorization 0 issue "letsencrypt.org" គ្មាន

វិធីសាស្ត្រ​ល្អ

ការ​កំណត់​រចនាសម្ព័ន្ធ TTL

លំនាំ​ទូទៅ

សុវត្ថិភាព

ការ​ដោះស្រាយ​កំហុស

កំហុស​ទូទៅ

លេខកូដស្ថានភាព កំហុស​ក្នុង​ការ​បង្កើត​ឯកសារ​ដែល​បាន​ជ្រើស & # 160; ៖% 1 ដំណោះស្រាយ
400 ឈ្មោះ​ដែន​មិន​ត្រឹមត្រូវ ធានា​ថា​ដែន​តាម​អនុសញ្ញា​ដាក់​ឈ្មោះ DNS
400 កំណត់ហេតុ MX ត្រូវការ​អាទិភាព រួម​បញ្ចូល priority វាល​សម្រាប់​កំណត់ហេតុ MX និង SRV
401 សញ្ញា​សម្គាល់ API មិន​ត្រឹមត្រូវ ពិនិត្យ​មើល​ទ្រង់ទ្រាយ​តួអក្សរ​ (ត្រូវ​ចាប់ផ្ដើម​ដោយ vps_)
403 បាត់​សិទ្ធិ បង្កើត​តួអក្សរ​ថ្មី​ដែល​ទាមទារ dns:* សិទ្ធិ
404 រក​មិន​ឃើញ​តំបន់/​កំណត់ហេតុ ផ្ទៀងផ្ទាត់ UUID និង​ធានា​ថា​ធនធាន​ជា​របស់​គណនី​របស់​អ្នក

ចម្លើយ​តប​កំហុស​ឧទាហរណ៍

{
  "detail": "MX records require a priority value",
  "error_code": "validation_error",
  "field": "priority"
}

កំពុង​សាកល្បង​ការ​ផ្លាស់ប្ដូរ DNS

ផ្ទៀងផ្ទាត់​ការ​ចម្លង​កំណត់ហេតុ

# Query A record
dig example.com A

# Query specific nameserver
dig @ns1.vps.org example.com

# Query MX records
dig example.com MX

# Check all records
dig example.com ANY

ការ​ប្រើ​ឧបករណ៍​លើ​បណ្ដាញ