Feature Collections - Queryablesspecstableimplmature
Metadaten über die Eigenschaften von Objekten aus einer Feature Collection, die in Filter-Ausdrücken verwendet werden können.
Umfang
Die Queryables werden als Schema kodiert, wobei jede Queryable eine Objekteigenschaft ist. Das Schema für jede abfragbare Eigenschaft wird automatisch aus der Definition der Eigenschaft im Feature-Provider abgeleitet. Unterstützte Kodierungen sind JSON Schema und HTML.
Die folgenden Arten von Eigenschaften können keine Queryables sein:
- Objekte oder Arrays von Objekten
- Eigenschaften mit multiplen Quellen, d.h. mit
coalesce
oderconcat
.
Darüber hinaus sollten die folgenden Arten von Eigenschaften nicht abfragbar sein:
- konstante Werte;
- Eigenschaften mit Wertumwandlungen im Provider-Schema (
stringFormat
,dateFormat
,nullify
,map
,codelist
).
Diese Eigenschaften werden nach wie vor als Queryables akzeptiert, wenn sie explizit in included
enthalten sind. Dieses Verhalten ist deprecated, diese Eigenschaften werden in der nächsten Hauptversion nicht mehr als Queryables akzeptiert werden.
Wenn die abfragbare Eigenschaft ein Wert ist, z.B. ein String oder ein Integer, die in einem Array verschachtelt ist, ist der Typ der abfragbaren Eigenschaft ein Array der Werte.
Limitierungen
OGC API - Features - Part 3 spezifiziert nicht, wie ein Queryable, das eine Feature-Referenz ist, die mehr Variablen als die lokale Feature-ID hat, behandelt werden soll. Wenn eine solche Eigenschaft ein Queryable ist, verwendet die aktuelle Implementierung die lokale Feature-ID als Wert des Queryables. Das heißt, solche Queryables sind nur dann sinnvoll, wenn die lokalen Feature-IDs global eindeutig sind. Der derzeitige Ansatz ist dementsprechend eine Übergangslösung, die sich in Zukunft noch ändern kann, wenn das Verhalten in einem Standard festgelegt wird.
Konformitätsklassen
Der Baustein implementiert die Konformitätsklassen "Queryables" und "Queryables as Query Parameters" von OGC API - Features - Part 3: Filtering.
Operationen
Ressource | Pfad | Methoden | Formate | Beschreibung |
---|---|---|---|---|
Queryables | collections/{collectionId}/queryables | GET | HTML, JSON | Die Ressource Queryables identifiziert und beschreibt die Eigenschaften, auf die in Filterausdrücken verwiesen werden kann. Die Antwort ist ein JSON-Schema-Dokument, das ein einzelnes JSON-Objekt beschreibt, bei dem jede Eigenschaft eine abfragbare Eigenschaft ist. |
Pfad-Parameter
Name | Ressourcen | Beschreibung |
---|---|---|
collectionId | Queryables | Der Identifikator der Feature Collection. |
Query Parameter
Name | Ressourcen | Beschreibung |
---|---|---|
f | Queryables | Wählt das Ausgabeformat der Antwort. Wenn kein Wert angegeben wird, gelten die Standard-HTTP Regeln, d.h. der "Accept"-Header wird zur Bestimmung des Formats verwendet. |
Konfiguration
Optionen
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
buildingBlock | Immer QUERYABLES . | string | v3.1 | |
caching | {} | Setzt feste Werte für HTTP-Caching-Header für die Ressourcen. | object | v3.1 |
enabled | true | Soll der Baustein aktiviert werden? | boolean | v3.1 |
included | [] | Die Liste der Eigenschaften, die in CQL2-Filterausdrücken verwendet werden können und/oder für die filternde Abfrageparameter für eine Collection bereitgestellt werden. Eigenschaften, die nicht vom Typ OBJECT oder OBJECT_ARRAY sind, kommen als Queryables in Frage, es sei denn isQueryable ist für die Eigenschaft auf false gesetzt. Der spezielle Wert * schließt alle in Frage kommenden Eigenschaften als abfragbar ein. Standardmäßig ist keine Eigenschaft abfragbar. | array | v3.4 |
excluded | [] | Die Liste der Eigenschaften, die aufgrund von included abfragbar wären, aber nicht abfragbar sein sollen. | array | v3.4 |
pathSeparator | DOT | Das Zeichen, das im Falle von objektwertigen Eigenschaften als Pfadseparator verwendet wird. Entweder DOT (Punkt) oder UNDERSCORE (Unterstrich). | string | v3.4 |
enableEndpoint | true | Bei true wird die Queryables-Ressource aktiviert. | boolean | v3.4 |
asQueryParameters | true | Bei true werden alle Queryables mit einem einfachen Wert (String, Zahl oder Boolean) als Query-Parameter zum Filtern der Features bereitgestellt. | boolean | v3.4 |
Beispiele
- buildingBlock: QUERYABLES
enabled: true
included:
- '*'
excluded:
- foo
- bar
pathSeparator: UNDERSCORE
asQueryParameters: false