Suche in diesem Bereich

Skip to end of metadata
Go to start of metadata


Inhaltsverzeichnis dieser Seite

Beschreibung

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

Eine Listenabfrage besteht dabei immer aus 3 Elementen:

  • Das Element View  legt den Umfang des Ergebnisses fest.
  • Das Element Where  legt Suchkriterien fest.
  • Das Element Order  legt die Sortierung des Ergebnisses fest.
Für eine Listenabfrage von sld, subtld, tld müssen die Schlüsselwörter in einen "Where"-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).

Ein Beispiel für eine einfache Abfrage Beispiel 1 für JSON und  Beispiel 1 für XML  und Beispiel 2 für JSON und Beispiel 2 für XML.

Schlüsselwort XMLHäufigkeitTypFormatBeschreibung

code

1

task


Z. B. Domain Inquire 0105

view

1



Enthält die anzuzeigenden Objekte

view / offset

0 - 1

int


Gibt an, ab dem wievielten Objekt die Liste angezeigt werden soll.

view / limit

0 - 1

int


Maximale Anzahl der anzuzeigenden Objekte

view / children

0 - 1

enum


Unterbenutzer abfragen.

  • 1 = Unterbenutzer werden abgefragt
  • 0 = Unterbenutzer werden nicht abgefragt

where

0 - 1

string


Enthält die Beschreibung des abzufragenden Objektes. Im where-Element können mit where/*/and und where/*/or mehrere Schlüsselwörter verschachtelt werden. Dabei gilt „and“ vor „or“.

where / key

1

string


Art des Schlüsselwortes

where / operator

0 - 1

enum


Vergleichsoperator

Die möglichen Operatoren sind weiter unten aufgeführt.

where / value

1

string


Wert des Schlüsselwortes

key

0 - n

string


Abfrage der Werte eines bestimmten Schlüsselwortes. Diese sind je nach Auftragstyp unterschiedlich, z. B.:

  • owner
  • name
  • id
  • created

order




Sortierung

order / key

0 - n

string


Schlüsselwort, nach dem sortiert wird

order / mode

0 - 1

enum


Reihenfolge der Sortierung

asc = aufsteigend

desc = absteigend

Vorgabewert =  asc

Weitere Details mit dem Schlüsselwort <key> abfragen

Mit dem Schlüsselwort <key> können Sie zusätzliche Details ermitteln.

In XML müssen Sie dafür unterhalb des Tags <task> ein Tag <key> hinzufügen. Bei der Beschreibung der Listenabfragen für die einzelnen Objekte werden die Schlüsselwörter angegeben, die Sie mit  <key> abfragen können.

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

In JSON können Sie mit Hilfe der Query-Parameteschlüssel zusätzliche Details festlegen. Je nach Art der abgefragten Objekte können unterschiedliche Schlüssel verwendet werden. Die für die jeweilige Listenabfrage gültigen Schlüssel finden Sie in der Technischen Dokumentation für JSON.

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 für JSON und beim Beispiel 3 für XML. Das gleiche gilt auch für reine oder-Verknüpfungen wie im Beispiel 4 für Beispiel 4 für JSON und im Beispiel 4 für XML. Beide Verknüpfungsarten können auch kombiniert werden. Siehe dazu Beispiel 5 für JSON und Beispiel 5 für XML sowie Beispiel 6 für JSON und Beispiel 6 für XML.

Beispiele JSON

Route: POST /contact

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

Response
   {
    "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

List 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

List 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 5: Komplexe Abfrage mit "where", "and" und "or"

List Request
Coming soon ...

Beispiel 6: Komplexe Abfrage mit  „"where", "and" und "or"

List Request
Coming soon ...

Beispiele XML

Auftragstyp-Code: 0301
Object: Objekt Contact

Beispiel 1: Einfache Abfrage mit "where"

DomainInfo 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>
       <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"

DomainInfo 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"

DomainInfo 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>
            <or>
                <or>
                    <key>name</key>
                    <operator>eq</operator>
                    <value>example.com</value>
                </or>
                <or>
                    <key>name</key>
                    <operator>eq</operator>
                    <value>example.de</value>
                </or>
            </or>
        </where>
        <order>
            <key>expire</key>
            <mode>asc</mode>
        </order>
    </task>
</request>

Beispiel 5: Komplexe Abfrage mit "where", "and" und "or"

DomainInfo Request
<request>
    <auth>
        <user>USER</user>
        <password>PASSWORD</password>
        <context>CONTEXT</context>
    </auth>
    <task>
        <code>0105</code>
        <view>
            <limit>20</limit>
            <offset>0</offset>
            <children>1</children>
        </view>
        <where>
            <or>
                <and>
                    <and>
                        <key>expire</key>
                        <operator>gt</operator>
                        <value>2018-06-01 00:00:00</value>
                    </and>
                    <and>
                        <key>name</key>
                        <operator>eq</operator>
                        <value>example.com</value>
                    </and>
                </and>
                <or>
                    <key>name</key>
                    <operator>eq</operator>
                    <value>example.de</value>
                </or>
            </or>
        </where>
        <order>
            <key>expire</key>
            <mode>asc</mode>
        </order>
    </task>
</request>

Beispiel 6: Komplexe Abfrage mit  „"where", "and" und "or"

Mit dem folgenden Beispiel werden alle Domains abgefragt, die mit “test” beginnen und den Top-Level-Domains .de oder .com angehören.

 <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>
             <where>
                    <and>
                           <key>name</key>
                           <operator>like</operator>
                           <value>test*</value>
                    </and>
                    <and>
                           <or>
                                  <key>name</key>
                                  <operator>like</operator>
                                  <value>*.de</value>
                           </or>
                           <or>
                                  <key>name</key>
                                  <operator>like</operator>
                                  <value>*.com</value>
                           </or>
                    </and>
             </where>
       </task>
 </request>
  • No labels