DNS-Integrationen

Zone-Details abrufen

getZoneDetails()

Das wird aufgerufen, wenn ein Kunde im Storefront eine Domain und den DNS-Manager öffnet. Das wird in der folgenden Datei aufgerufen:

app/Http/Controllers/Storefront/Account/AccountDomainController.php Line 96

Parameter

Typ

Name

Beschreibung

IpamRdnsHost

$ipamRdnsHost,

Der DNS-Host

String

$zoneName

Der Zonenname

Antwort

ZoneDetails()-Klasse. Siehe Zone erstellen

Die ZoneDetails()-Klasse sollte ein Array von DnsRecordItem() enthalten:

Typ

Name

Beschreibung

mixed

$id

ID des Eintrags, falls vorhanden. Kann null sein.

string

$type

Der DNS-Typ

string

$hostname

Der Hostname

string

$content

Der Inhalt

Int oder Null

$ttl

Der TTL-Wert

String oder null

$priority

Die Priorität (nur für MX-Einträge)

Beispielcode

public function getZoneDetails(IpamRdnsHost $ipamRdnsHost, string $zoneName): ZoneDetails {
	$dnsRecords = [];
	$zoneName = $this->getZoneName($zoneName, $ipamRdnsHost);

	try {
		$zoneResponse = $this->_sendRequest($ipamRdnsHost, "zones/{$zoneName}");
		$recordsResponse = $this->_sendRequest($ipamRdnsHost, "zones/{$zoneName}/dns_records");
	} catch (ClientException $e) {
		throw new Exception($this->_getErrorMessage($e));
	}

	foreach ($recordsResponse->result as $record) {
		$dnsRecords[] = new DnsRecordItem(
			$record->id,
			$record->type,
			$record->name,
			$record->content,
			$record->ttl,
		);
	}

	return new ZoneDetails(
		$zoneResponse->result->id,
		$zoneResponse->result->name,
		null,
		$zoneResponse->result->name_servers,
		$dnsRecords
	);
}

Testen

Du kannst diese Funktion testen, indem Du im Storefront ein Ticket erstellst.

War das hilfreich?