Feature Collections - Queryables

specstableimplmature

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 oder concat.

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: Filteringopen in new window.

Operationen

RessourcePfadMethodenFormateBeschreibung
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

NameRessourcenBeschreibung
collectionId
Queryables
Der Identifikator der Feature Collection.

Query Parameter

NameRessourcenBeschreibung
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

NameDefaultBeschreibungTypSeit
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