Inhaltsverzeichnis dieser Seite

Beschreibung

Mit Listenabfragen werden die Daten mehrerer oder aller Objekte eines Objekttyps ermittelt. Die zurückgegebenen Listen enthalten für die einzelnen Objekte weniger Details als die Ergebnisse von Einzelabfragen. 

Eine Listenabfrage besteht aus 3 Objekten:

  • Das Objekt Where (XML) bzw. Filters (JSON)  legt Suchkriterien fest. Details zum Objekt Where für XML und Filters für JSON.

  • Das Objekt View  legt den Umfang des Ergebnisses fest. Details zum Objekt View für XML und JSON.

  • Das Objekt Order  legt die Sortierung des Ergebnisses fest. Details zum Objekt Order für XML und JSON.

Für eine Listenabfrage von sld, subtld, tld müssen die Keywords in einen "Where" bzw. "Filters"-Block eingefügt werden. Es werden immer nur die vollständigen Domain-Namen (z. B. example.com) zurückgegeben, nicht aber die Daten der einzelnen Keys (z.B. .com).

Auftragstypen und Routen für Listenabfragen

Die  Listenabfragen werden in XML mit den objekt-spezifischen ListInquire-Aufträgen ausgeführt und in JSON über die entsprechenden Routen.

Dies sind: (Liste noch nicht vollständig)

XML-AuftragstypXML-CodeJSON-RouteBeschreibung
BackupMX List524POST /backupMX/_searchErmittelt Daten von  BackupMX-Einträgen.
Certificate Job List400115JobLIstErmittelt die Daten von Zonen-Aufträgen.
Certificate List400105POST /certificate/_searchErmittelt die Daten von Zertifikaten.
Contact List304POST /contact​/_searchErmittelt Daten von Domain-Kontakten.
Domain List105POST ​/domain​/_searchErmittelt Daten von Domains die  im Bestand des Benutzers sind.
Domain Premium List165-Ermittelt Daten von Premium-Domains die im Bestand des Benutzers sind.
Domain Monitoring List155-Ermittelt  Daten mehrerer Domain-Überwachungen.
Job List

-

POST​/job​/_searchErmittelt  Daten mehrerer Aufträgen. in XML Objektspetifische Job-Auftragstypen, z. B. DomainJobList, ZoneJobList, ContactJobList.
MailProxyList514POST /mailProxy/_searchErmittelt MailProxy-Daten mehrerer Domain.
Redirect List504POST /redirect/_searchErmittelt Daten der aktuellen Weiterleitungen.
SSLContact List400205POST /sslcontaxt/{id}Ermittelt die Daten von SSL-Kontakten.
Transfer Out List106001POST /transferout/_searchErmittelt Daten mehrerer laufender ausgehender Transfers.
Zone List205POST/zone/_searchErmittelt  Zonen-Daten mehrerer Zonen auf den vom System verwalteten Nameservern.
Zone History List225POST /zone/history/_searchErmittelt  Daten mehrerer Zonen

Weitere Details abfragen

In XML können mit dem Keyword <key> zusätzliche Details ermittelt werden.  Dafür muss unterhalb des Tags <task> ein Tag <key> hinzugefügt werden. Bei der Beschreibung der einzelnen Listenabfragen werden jeweils die Keywords angegeben, die mit  <key> abgefragt werden können.

XML
<task>
       <key>created</key>
</task>

Analog können weitere Details in JSON  mithilfe von Query-Parameter abgefragt werden. Je nach Art der abgefragten Objekte können unterschiedliche Parameter verwendet werden. Die für die jeweilige Listenabfrage gültigen Parameter sind in der Technischen Dokumentation für JSON hinterlegt.

JSON
POST /domain/_search?keys[]=$key1&keys[]=$key2

Mögliche Operatoren für die Listenabfrage

Wert JSON

Wert XML

Bedeutung

EQUAL

eq

Direkter Vergleich (=)

NOT_EQUAL

ne

Ist nicht (!=)

LIKE

like

Wildcard-Suche mit "*", Groß- und Kleinschreibung beachten

GREATER

gt

Größer als (>)

LESS

lt

Kleiner als (<)

GREATER_EQUAL

ge

Größer gleich (>=)

LESS_EQUAL

le

Kleiner gleich (<=)

NOT_LIKEnot_likeWildcard-Suche mit "*", "Ist nicht gleich", Groß- und Kleinschreibung beachten
ILIKEilikeWildcard-Suche mit "*", "Ist gleich", Groß-/Kleinschreibung wird nicht berücksichtigt

Komplexe Abfragen

Mit Hilfe des Element Where sind komplexere Abfragen möglich. Es können mehrere Bedingungen mit und/oder verknüpft werden. Um mehrere Bedingungen z. B. mit Und zu verknüpfen, muss unterhalb des Tags where ein and-Tag eröffnet werden. Unter diesem Tag werden nun für jede Bedingung  weitere and-Tags eröffnet und darunter mit key, operator und value die Bedingung definiert, wie beim Beispiel 3 im Abschnitt Beispiele. Das gleiche gilt auch für reine oder-Verknüpfungen wie im Beispiel 4 im Abschnitt Beispiele Beide Verknüpfungsarten können auch kombiniert werden.

Beispiele für komplexe Abfragen in  JSON und XML

Beispiel 1: Einfache Abfrage mit "where"

Request
{
    "filters": [
        {
            "key": "name",
            "operator": "LIKE",
            "value": "%json-test%"
        }
    ],
    "view": {
        "children": 1,
        "limit": 10
    },
    "orders": [
        {
            "key": "created",
            "type": "ASC"
        }
    ]
}

 Beispiel 2: Komplexe Abfrage mit mehreren Bedingungen, die mit "Und" verknüpft sind

Request
   {
    "filters": [
        {
            "key": "name",
            "operator": "LIKE",
            "value": "%json-test%"
        },
        {
            "key": "trustee",
            "operator": "EQUAL",
            "value": false
        }
    ],
    "view": {
        "children": 1,
        "limit": 10
    },
    "orders": [
        {
            "key": "created",
            "type": "ASC"
        }
    ]
}

 Beispiel 3: Komplexe Abfrage mit mehreren Bedingungen, die mit "Oder" verknüpft sind

Request
{
    "filters": [
        {
			"link": "OR",
            "filters": [
        		{
            		"key": "name",
            		"operator": "LIKE",
            		"value": "%json-test%"
        		},
	        	{
            		"key": "trustee",
            		"operator": "EQUAL",
            		"value": false
        		}
			]
        }
    ],
    "view": {
        "children": 1,
        "limit": 10
    },
    "orders": [
        {
            "key": "created",
            "type": "ASC"
        }
    ]
}

Beispiel 4: Komplexe Abfrage mit mit mehreren Bedingungen, die mit "Und" und "Oder"-Bedingungen verknüpft sind

Request
{
    "filters": [
        {
            "link": "OR",
            "filters": [
                {
                    "key": "name",
                    "operator": "LIKE",
                    "value": "%json-test%"
                },
                {
					"link": "AND",
					"filters": [
						{
                      		"key": "comment",
                    		"operator": "LIKE",
                    		"value": "%on2%"
						},
						{
                      		"key": "create",
                    		"operator": "gt",
                    		"value": "2018-01-01 00:00:00"
						}
					]
                }
            ]
        },
        {
            "key": "trustee",
            "operator": "EQUAL",
            "value": false
        }
    ],
    "view": {
        "children": 1,
        "limit": 10
    },
    "orders": [
        {
            "key": "created",
            "type": "ASC"
        }
    ]
}

Beispiel 1: Einfache Abfrage mit "where"

Request
<request>
    <auth>
        <user>USER</user>
        <password>PASSWORD</password>
        <context>CONTEXT</context>
    </auth>
    <task>
        <code>0105</code>
        <view>
            <limit>10</limit>
            <offset>0</offset>
            <children>0</children>
        </view>
        <where>
            <key>name</key>
            <operator>eq</operator>
            <value>example.com</value>
        </where>
        <order>
            <key>created</key>
            <mode>desc</mode>
        </order>
        <key>comment</key>
    </task>
</request>

Beispiel 2: Abfrage mit "where", der Limitierung der Ergebnisse mit "limit" und einer Sortierung mit "order"

Die Liste soll die ersten 30 Domains (offset = 0, limit = 30) die mit "a" anfangen (name like a*) anzeigen. Zusätzlich wird das Feld created angefordert (key = created).

Request
 <request>
       <auth>
             <user>customer</user>
             <password>password</password>
             <context>4</context>
       </auth>
       <task>
             <code>0105</code>
             <view>
                    <offset>0</offset>
                    <limit>30</limit>
                    <children>1</children>
             </view>
             <key>created</key>
             <where>
                    <key>name</key>
                    <operator>like</operator>
                    <value>a*</value>
             </where>
             <order>
                    <key>created</key>
                    <mode>asc</mode>
             </order>
       </task>
 </request>

Beispiel 3: Komplexe Abfrage mit "where" und "and"

Request
<request>
    <auth>
        <user>USER</user>
        <password>PASSWORD</password>
        <context>CONTEXT</context>
    </auth>
    <task>
        <code>0105</code>
        <view>
            <limit>10</limit>
            <offset>0</offset>
            <children>0</children>
        </view>
        <where>
            <and>
                <and>
                    <key>expire</key>
                    <operator>gt</operator>
                    <value>2018-06-01 00:00:00</value>
                </and>
                <and>
                    <key>expire</key>
                    <operator>lt</operator>
                    <value>2018-12-31 00:00:00</value>
                </and>
            </and>
        </where>
        <order>
            <key>expire</key>
            <mode>asc</mode>
        </order>
    </task>
</request>

Beispiel 4: Komplexe Abfrage mit "where" und "or"

Request
<request>
    <auth>
        <user>USER</user>
        <password>PASSWORD</password>
        <context>CONTEXT</context>
    </auth>
    <task>
        <code>0105</code>
        <where>
         <or>
            <key>name</key>
            <operator>LIKE</operator>
            <value>json-test</value>
    
         </or>
         <or>
            <and>
                <key>comment</key>
                <operator>LIKE</operator>
                <value>on2</value>
            </and>
            <and>
                <key>created</key>
                <operator>gt</operator>
                <value>2020-05-01 00:00:00</value>
            </and>
         </or>
        </where>
        <order>
            <key>expire</key>
            <mode>asc</mode>
        </order>
    </task>
<request>



  • No labels