Ad Sunucuları ve Kayıtlar

1.6k görüntülenme Markdown

Alan adının nereyi gösterdiğini belirleyen on dört uç.

Genel Bakış

Bir alan adının nereyi gösterdiği iki katmanda belirlenir. Önce ad sunucuları hangi sunucunun soruları yanıtlayacağını söyler; sonra o sunucudaki kayıtlar yanıtın ne olacağını söyler.

Bu ayrım uçlara da yansır: ad sunucusu değiştirmek her alan adında açıktır, ama kayıtları buradan yönetmek alan adı yönetimi ek hizmetini gerektirir.

Üç uç daha ileri gider. Kendi ad sunucunuzu işletiyorsanız onu alan adının altında tanımlarsınız; imza kayıtları ise yanıtların yolda değiştirilmediğini kanıtlar.

Referans

Ad Sunucularını Okuma

get/api/v1/client/domains/{domain}/nameservers
Domains/GetNameservers anahtarın sahibi

Alan adının ad sunucularını ve hesabın varsayılan setini döndürür.

Dönen alanlar data — 3
nameserversstring[]Alan adının güncel seti. En çok dört giriş; boş yuvalar düşer.
defaultstring[]Hesabın varsayılan seti.
is_customboolSet varsayılandan farklı mı. Karşılaştırma büyük küçük harf gözetmez.
Hatalar 2
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/client/domains/example.com/nameservers' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/nameservers`, {
  headers: { Authorization: `Bearer ${clientKey}` },
});

const { data } = await res.json();
if (data.is_custom) showResetToDefault(data.default);
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/nameservers');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Bu uc EK HIZMET ISTEMEZ: ad sunucusu degistirmek her alan adinda aciktir, DNS kayitlari degil.
$n = Kernel::internal('client:Domains/GetNameservers',
    ['owner_id' => $uid, 'domain' => $domain])['data'];
$set = $n['nameservers'];

Ad Sunucularını Değiştirme

put/api/v1/client/domains/{domain}/nameservers
Domains/UpdateNameservers siteyi taşır

Alan adının ad sunucularını sağlayıcıda değiştirir.

Gövde 1
nameserversstring[]reqYeni set. İkiden dörde kadar geçerli sunucu adı; boş girişler sayımdan önce düşer.
Dönen alanlar data — 1
nameserversstring[]Sağlayıcının kabul ettiği set. Küçük harfe çevrilmiş olarak döner.
Hatalar 6
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
not_actionable422Alan adı etkin değil.
nameservers_invalid422İkiden az ya da dörtten çok giriş, ya da biri geçerli bir sunucu adı değil.
nameservers_not_supported422Sağlayıcı modülünde yazma desteği yok.
nameservers_rejected422Bir kanca değişikliği reddetti.
nameservers_failed422Sağlayıcı değişikliği reddetti.
nameservers_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/client/domains/example.com/nameservers' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"nameservers":["ns1.example.net","ns2.example.net"]}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/nameservers`, {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ nameservers: list }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/nameservers');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['nameservers' => $list]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Ad sunucusunu degistirmek SITEYI TASIR: eski sunucudaki kayitlar artik gecerli olmaz.
// Yeni sunucuda kayitlarin hazir oldugunu once dogrulayin.
Kernel::internal('client:Domains/UpdateNameservers',
    ['owner_id' => $uid, 'domain' => $domain, 'nameservers' => $list]);

Varsayılan Ad Sunucularını Okuma

get/api/v1/client/domains/default-nameservers
Domains/GetDefaultNameservers hesap geneli

Hesabın yeni alan adlarına uygulanan varsayılan setini döndürür.

Dönen alanlar data — 1
nameserversstring[]Kayıtlı varsayılan set. Hiç kaydedilmemişse boş liste gelir.
Hatalar 1
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/client/domains/default-nameservers' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/client/domains/default-nameservers', {
  headers: { Authorization: `Bearer ${clientKey}` },
});

const { data } = await res.json();
if (! data.nameservers.length) promptToSetDefaults();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/default-nameservers');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Varsayilan set YENI kayitlara uygulanir; var olan alan adlarini geriye donuk degistirmez.
$d = Kernel::internal('client:Domains/GetDefaultNameservers', ['owner_id' => $uid])['data'];

Varsayılan Ad Sunucularını Kaydetme

put/api/v1/client/domains/default-nameservers
Domains/UpdateDefaultNameservers hesap geneli

Yeni alan adlarına uygulanacak varsayılan seti kaydeder.

Gövde 1
nameserversstring[]reqVarsayılan set. İkiden dörde kadar geçerli sunucu adı; boşluklar kırpılır ve küçük harfe çevrilir.
Dönen alanlar data — 1
nameserversstring[]Kaydedilen set.
Hatalar 2
nameservers_invalid422Giriş sayısı ya da biçimi geçersiz.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/client/domains/default-nameservers' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"nameservers":["ns1.example.net","ns2.example.net"]}'
const res = await fetch('https://panel.ornek.com/api/v1/client/domains/default-nameservers', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ nameservers: list }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/default-nameservers');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['nameservers' => $list]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Bu ayar HICBIR alan adina dokunmaz: yalniz sonraki kayitlarin baslangic degeridir.
Kernel::internal('client:Domains/UpdateDefaultNameservers',
    ['owner_id' => $uid, 'nameservers' => $list]);

Kendi Ad Sunucularını Listeleme

get/api/v1/client/domains/{domain}/child-nameservers
Domains/GetChildNameservers sağlayıcıdan okur

Alan adının altında tanımlı ad sunucularını döndürür.

Dönen alanlar data[] — 2
nsstringSunucunun tam adı. Genelde alan adının kendi altındadır.
ipstringKayıtlı adres. Sağlayıcı bildirmezse boş gelir.
Hatalar 4
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
child_ns_not_supported422Sağlayıcı modülünde bu destek yok.
child_ns_failed422Sağlayıcı canlı okumayı reddetti ve düşülecek bir kayıt yok.
child_ns_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü; düşülecek bir kayıt da yok. Daha sonra yeniden deneyin.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/client/domains/example.com/child-nameservers' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/child-nameservers`, {
  headers: { Authorization: `Bearer ${clientKey}` },
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/child-nameservers');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Bu kayitlar KENDI ad sunucunuzu isletmek icindir; siradan bir alan adinda gerekmez.
$g = Kernel::internal('client:Domains/GetChildNameservers',
    ['owner_id' => $uid, 'domain' => $domain])['data'];

Kendi Ad Sunucusunu Tanımlama

post/api/v1/client/domains/{domain}/child-nameservers
Domains/CreateChildNameserver sicile yazar

Alan adının altında bir ad sunucusu tanımlar.

Gövde 2
hoststringreqSunucunun tam adı. Küçük harfe çevrilir.
ipstringreqSunucunun adresi. Biçimi doğrulanır.
Dönen alanlar data[] — 2
dataarrayYeniden okunan güncel liste. Listeleme ucuyla aynı şekildedir.
Hatalar 8
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
not_actionable422Alan adı etkin değil.
child_ns_fields422Ad ya da adres gönderilmemiş.
child_ns_host_invalid422Ad geçerli bir sunucu adı değil.
child_ns_ip_invalid422Adres geçerli değil.
child_ns_not_supported422Sağlayıcı modülünde bu destek yok.
child_ns_rejected422Bir kanca değişikliği reddetti.
child_ns_failed422Sağlayıcı kaydı reddetti.
child_ns_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/client/domains/example.com/child-nameservers' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"host":"ns1.example.com","ip":"203.0.113.10"}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/child-nameservers`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ host, ip }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/child-nameservers');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(compact('host', 'ip')),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Tanimlamak yetmez: alan adini o sunucuya YONLENDIRMEK icin ad sunucusu setini de yazin.
Kernel::internal('client:Domains/CreateChildNameserver',
    ['owner_id' => $uid, 'domain' => $domain, 'host' => $host, 'ip' => $ip]);

Kernel::internal('client:Domains/UpdateNameservers',
    ['owner_id' => $uid, 'domain' => $domain, 'nameservers' => [$host, $host2]]);

Kendi Ad Sunucusunu Kaldırma

delete/api/v1/client/domains/{domain}/child-nameservers
Domains/DeleteChildNameserver sicile yazar

Alan adının altındaki bir ad sunucusu tanımını kaldırır.

Gövde 2
hoststringreqKaldırılacak sunucunun adı.
ipstringAdres. Adla adresi birlikte kullanan sağlayıcılarda gönderilir.
Dönen alanlar data[] — 2
dataarrayYeniden okunan güncel liste.
Hatalar 6
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
not_actionable422Alan adı etkin değil.
child_ns_fields422Sunucu adı gönderilmemiş.
child_ns_not_supported422Sağlayıcı modülünde bu destek yok.
child_ns_rejected422Bir kanca silmeyi reddetti.
child_ns_failed422Sağlayıcı silmeyi reddetti.
child_ns_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X DELETE 'https://panel.ornek.com/api/v1/client/domains/example.com/child-nameservers' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"host":"ns1.example.com"}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/child-nameservers`, {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ host }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/child-nameservers');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'DELETE',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['host' => $host]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Hala KULLANILAN bir sunucuyu kaldirmak baska alan adlarini erisilemez birakabilir.
Kernel::internal('client:Domains/DeleteChildNameserver',
    ['owner_id' => $uid, 'domain' => $domain, 'host' => $host]);

DNS Kayıtlarını Listeleme

get/api/v1/client/domains/{domain}/dns-records
Domains/GetDnsRecords ek hizmet gerekir

Alan adının DNS kayıtlarını sağlayıcıdan okur.

Dönen alanlar data[] — 6
identitystringSağlayıcı tarafındaki kayıt numarası. Bazı sağlayıcılar kaydı tür, ad ve değerle tanır; orada boş gelir.
typestringKayıt türü.
namestringKaydın yanıtladığı ad.
valuestringKaydın içeriği.
ttlintSaniye cinsinden yaşam süresi. Sağlayıcı bildirmezse sıfır gelir.
prioritystringPosta ve hizmet kayıtlarında öncelik. Diğer türlerde boş gelir.
Hatalar 6
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
addon_required422Alan adı yönetimi ek hizmeti alınmamış. Ödenmemiş fatura ya da uzantının bu hizmeti sunmaması da aynı kapıya düşer.
addon_pending422Ek hizmet faturası ödenmemiş. Fatura numarası yanıtın ayrıntısında gelir.
dns_not_supported422Sağlayıcı modülünde kayıt okuma yok.
dns_rejected422Bir kanca okumayı reddetti.
dns_failed422Sağlayıcı okumayı reddetti.
dns_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl 'https://panel.ornek.com/api/v1/client/domains/example.com/dns-records' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/dns-records`, {
  headers: { Authorization: `Bearer ${clientKey}` },
});

const body = await res.json();
if (res.status === 422 && body.error.code.startsWith('addon_')) return offerAddon(body);
if (!res.ok) throw new Error(body.error.message); // dns_failed: 422 = saglayici reddetti, 500 = ulasilamadi (sonra yeniden deneyin)

const { data } = body;
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/dns-records');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Kayit numarasi BOS gelebilir: o saglayici kaydi tur, ad ve deger uclusuyle tanir.
$rows = Kernel::internal('client:Domains/GetDnsRecords',
    ['owner_id' => $uid, 'domain' => $domain])['data'];

$keyed = (bool) ($rows[0]['identity'] ?? '');

DNS Kaydı Ekleme

post/api/v1/client/domains/{domain}/dns-records
Domains/CreateDnsRecord ek hizmet gerekir

Alan adına yeni bir DNS kaydı ekler.

Gövde 5
typestringreqKayıt türü.
namestringreqKaydın yanıtlayacağı ad. Kabul edilen biçim sağlayıcıya göre değişir.
valuestringreqKaydın içeriği.
ttlintYaşam süresi. Verilmezse sağlayıcının varsayılanı kullanılır.
priorityintÖncelik. Posta ve hizmet kayıtları dışında yok sayılır.
Dönen alanlar data[] — 6
dataarrayEkleme sonrası yeniden okunan liste. Listeleme ucuyla aynı şekildedir.
Hatalar 7
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
addon_required422Alan adı yönetimi ek hizmeti alınmamış. Ödenmemiş fatura ya da uzantının bu hizmeti sunmaması da aynı kapıya düşer.
not_actionable422Alan adı etkin değil.
dns_fields422Tür, ad ya da değer eksik.
dns_not_supported422Sağlayıcı modülünde kayıt ekleme yok.
dns_rejected422Bir kanca eklemeyi reddetti.
dns_failed422Sağlayıcı kaydı reddetti.
dns_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/client/domains/example.com/dns-records' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"type":"A","name":"www","value":"203.0.113.10","ttl":3600}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/dns-records`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ type: 'A', name: 'www', value: ip }),
});

const { data } = await res.json();
renderRecords(data);
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/dns-records');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($record),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Yanit TAZE LISTEYI doner: ayrica okuma cagrisi yapmayin, ekranı bununla tazeleyin.
$rows = Kernel::internal('client:Domains/CreateDnsRecord',
    ['owner_id' => $uid, 'domain' => $domain] + $record)['data'];

DNS Kaydını Düzenleme

put/api/v1/client/domains/{domain}/dns-records
Domains/UpdateDnsRecord numara ile eşleşir

Var olan bir DNS kaydını değiştirir.

Gövde 6
identitystringListeden gelen kayıt numarası. Liste bir numara döndürdüyse mutlaka gönderin.
typestringreqKayıt türü.
namestringreqKaydın adı.
valuestringreqYeni içerik.
ttlintYaşam süresi. Verilmezse kayıt mevcut yaşam süresini korur.
priorityintÖncelik. Verilmezse kayıt, türü değişmediği sürece mevcut önceliğini korur.
Dönen alanlar data[] — 6
dataarrayDüzenleme sonrası yeniden okunan liste.
Hatalar 7
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
addon_required422Alan adı yönetimi ek hizmeti alınmamış. Ödenmemiş fatura ya da uzantının bu hizmeti sunmaması da aynı kapıya düşer.
not_actionable422Alan adı etkin değil.
dns_fields422Tür, ad ya da değer eksik.
dns_edit_not_supported422Sağlayıcı modülünde düzenleme yok. Böyle bir sağlayıcıda kaydı silip yenisini ekleyin.
dns_rejected422Bir kanca düzenlemeyi reddetti.
dns_failed422Sağlayıcı değişikliği reddetti.
dns_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/client/domains/example.com/dns-records' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"identity":"42","type":"A","name":"www","value":"203.0.113.20"}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/dns-records`, {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ identity: rec.identity, ...next }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/dns-records');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($record),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Duzenleme her saglayicida YOKTUR: yetenek listesinde kapaliysa sil ve yeniden ekle.
$d = Kernel::internal('client:Domains/GetDomain',
    ['owner_id' => $uid, 'domain' => $domain])['data'];

if (! $d['capabilities']['dns_edit']) { /* delete + create */ }

DNS Kaydını Silme

delete/api/v1/client/domains/{domain}/dns-records
Domains/DeleteDnsRecord eşleşme daraltılır

Bir DNS kaydını kaldırır.

Gövde 4
typestringreqSilinecek kaydın türü.
namestringKaydın adı. Eşleşmeyi daraltır.
valuestringKaydın içeriği. Eşleşmeyi daraltır.
identitystringListeden gelen kayıt numarası. En kesin seçicidir.
Dönen alanlar data[] — 6
dataarraySilme sonrası yeniden okunan liste.
Hatalar 6
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
addon_required422Alan adı yönetimi ek hizmeti alınmamış. Ödenmemiş fatura ya da uzantının bu hizmeti sunmaması da aynı kapıya düşer.
not_actionable422Alan adı etkin değil.
dns_fields422Kayıt türü gönderilmemiş.
dns_rejected422Bir kanca silmeyi reddetti.
dns_failed422Sağlayıcı silmeyi reddetti.
dns_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X DELETE 'https://panel.ornek.com/api/v1/client/domains/example.com/dns-records' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"identity":"42","type":"A","name":"www"}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/dns-records`, {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ identity: rec.identity, type: rec.type, name: rec.name }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/dns-records');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'DELETE',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($selector),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// YALNIZ tur gondermek ayni turdeki BIRDEN COK kaydi silebilir: numarayi ya da ad ve degeri ekleyin.
Kernel::internal('client:Domains/DeleteDnsRecord', ['owner_id' => $uid, 'domain' => $domain,
    'identity' => $rec['identity'], 'type' => $rec['type'],
    'name' => $rec['name'], 'value' => $rec['value']]);

İmza Kayıtlarını Listeleme

get/api/v1/client/domains/{domain}/dnssec
Domains/GetDnssecRecords sağlayıcıdan okur

Alan adının imza doğrulama kayıtlarını döndürür.

Dönen alanlar data[] — 5
identitystringSağlayıcı tarafındaki satır numarası.
digeststringİmza özeti.
key_tagintÖzetin işaret ettiği anahtarın etiketi.
digest_typeintÖzet algoritmasının numarası. İzinli küme sağlayıcı modülünden gelir.
algorithmintAnahtar algoritmasının numarası.
Hatalar 4
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
dnssec_not_supported422Sağlayıcı modülünde imza desteği yok.
dnssec_failed422Sağlayıcı okumayı reddetti.
dnssec_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/client/domains/example.com/dnssec' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/dnssec`, {
  headers: { Authorization: `Bearer ${clientKey}` },
});

const { data } = await res.json();
const signed = data.length > 0;
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/dnssec');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Bu kayitlar EK HIZMET istemez ama saglayici destegi ister; yetenek listesinden dogrulayin.
$ds = Kernel::internal('client:Domains/GetDnssecRecords',
    ['owner_id' => $uid, 'domain' => $domain])['data'];

İmza Kaydı Ekleme

post/api/v1/client/domains/{domain}/dnssec
Domains/CreateDnssecRecord algoritma denetlenir

Alan adına bir imza doğrulama kaydı ekler.

Gövde 4
key_tagintreqAnahtarın etiketi.
algorithmintreqAnahtar algoritmasının numarası. Modülün bildirdiği kümede olmalıdır.
digest_typeintreqÖzet algoritmasının numarası. Modülün bildirdiği kümede olmalıdır.
digeststringreqİmza özeti.
Dönen alanlar data[] — 5
dataarrayYeniden okunan güncel küme.
Hatalar 8
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
not_actionable422Alan adı etkin değil.
dnssec_fields422Zorunlu alanlardan biri eksik.
dnssec_not_supported422Sağlayıcı modülünde ekleme yok.
dnssec_digest_type_invalid422Özet algoritması izinli kümede değil. İzinli numaralar yanıtın ayrıntısında gelir.
dnssec_algorithm_invalid422Anahtar algoritması izinli kümede değil.
dnssec_rejected422Bir kanca eklemeyi reddetti.
dnssec_failed422Sağlayıcı kaydı reddetti.
dnssec_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/client/domains/example.com/dnssec' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"key_tag":12345,"algorithm":13,"digest_type":2,"digest":"A1B2C3"}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/dnssec`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(ds),
});

if (res.status === 422) showAllowed(await res.json());
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/dnssec');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($ds),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Izinli algoritma kumesi SAGLAYICIYA gore degisir: reddi okuyup izinli listeyi kullaniciya gosterin.
try     { Kernel::internal('client:Domains/CreateDnssecRecord',
              ['owner_id' => $uid, 'domain' => $domain] + $ds); }
catch   (\Throwable $e) { $allowed = $e->details['allowed'] ?? []; }

İmza Kaydını Silme

delete/api/v1/client/domains/{domain}/dnssec
Domains/DeleteDnssecRecord siteyi kırabilir

Bir imza doğrulama kaydını kaldırır.

Gövde 5
digeststringreqSilinecek kaydın özeti.
key_tagintreqKaydın anahtar etiketi.
digest_typeintEşleşmeyi daraltır.
algorithmintEşleşmeyi daraltır.
identitystringListeden gelen satır numarası. En kesin seçicidir.
Dönen alanlar data[] — 5
dataarraySilme sonrası yeniden okunan küme.
Hatalar 6
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
not_actionable422Alan adı etkin değil.
dnssec_fields422Özet ya da anahtar etiketi eksik.
dnssec_not_supported422Sağlayıcı modülünde silme yok.
dnssec_rejected422Bir kanca silmeyi reddetti.
dnssec_failed422Sağlayıcı silmeyi reddetti.
dnssec_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X DELETE 'https://panel.ornek.com/api/v1/client/domains/example.com/dnssec' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"key_tag":12345,"digest":"A1B2C3"}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/dnssec`, {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ key_tag: ds.key_tag, digest: ds.digest }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/dnssec');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'DELETE',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($selector),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Son imza kaydini silmeden ONCE bolgeyi imzasiz hale getirin: sira ters olursa alan adi cozulmez.
$ds = Kernel::internal('client:Domains/GetDnssecRecords',
    ['owner_id' => $uid, 'domain' => $domain])['data'];

$isLast = count($ds) === 1;

Tuzaklar

Kayıt yönetimi ek hizmet ister, ad sunucusu istemez

DNS kayıt uçları alan adı yönetimi ek hizmetinin arkasındadır: alınmamışsa ya da faturası ödenmemişse hepsi reddedilir ve yanıt hangi durumda olduğunu söyler. Ad sunucusu değiştirme uçları bu kapıdan geçmez; her alan adında çalışır.

Ad sunucusunu değiştirmek kayıtları geride bırakır

Ad sunucusu setini değiştirmek, alan adının sorularını başka bir sunucuya yönlendirir. Buradan girdiğiniz kayıtlar eski sunucuda kalır ve artık kimse onlara sormaz. Yeni sunucuda kayıtların hazır olduğunu doğrulamadan seti değiştirmeyin.

Kayıt numarası her sağlayıcıda gelmez

Bazı sağlayıcılar kaydı bir numarayla anahtarlar, bazıları tür, ad ve değer üçlüsüyle tanır; ikinci durumda numara boş gelir. Düzenleme ve silme çağrılarında numara varsa mutlaka gönderin; yoksa üçlüyü tam verin, yoksa yanlış kayıt seçilebilir.

Yalnız tür göndermek toplu silebilir

Silme çağrısında yalnız kayıt türü zorunludur; ad ve değer eşleşmeyi daraltır. Sadece tür göndermek, o türdeki birden çok kaydı birden götürebilir. Elinizde numara yoksa bile adı ve değeri ekleyin.

İmza kaydını yanlış sırayla kaldırmak alan adını kırar

İmza doğrulama açıkken sicildeki kayıt ile bölgedeki imza uyuşmak zorundadır. Son kaydı bölge hâlâ imzalıyken kaldırmak ya da bölgeyi kayıt dururken imzasız bırakmak alan adını çözülemez hâle getirir. Önce bölgeyi imzasız hâle getirin, sonra kaydı silin.

Kendi ad sunucunuz iki adım ister

Alan adının altında bir ad sunucusu tanımlamak onu yalnız var eder; alan adının o sunucuyu kullanması için ad sunucusu setini de yazmanız gerekir. Bu ikinci adım atlanırsa tanım sicilde durur ama hiçbir şey değişmez.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.