Allgemein
Es werden aktuell drei Arten von Feature-Providern unterstützt:
- SQL: Die Features sind in einer SQL-Datenbank gespeichert (PostgreSQL/PostGIS, GeoPackage, SQLite/SpatiaLite).
- WFS: Die Features werden von einem OGC WFS bezogen.
- GraphQL: Die Features werden von einer GraphQL API bezogen. Dieser Feature-Provider ist experimentell und hat einen eingeschränkten Funktionsumfang.
Konfiguration
Dies sind gemeinsame Konfigurations-Optionen für alle Provider-Typen.
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
id | Eindeutiger Identifikator der Entity, muss dem Dateinamen entsprechen. Erlaubt sind Buchstaben (A-Z, a-z), Ziffern (0-9), der Unterstrich ("_") und der Bindestrich ("-"). | string | v2.0 | |
providerType | Stets FEATURE . | string | v2.0 | |
providerSubType | SQL für ein SQL-DBMS als Datenquelle, WFS für einen OGC Web Feature Service als Datenquelle. | string | v2.0 | |
featureProviderType | Deprecated Siehe providerSubType . | string | v2.0 | |
nativeCrs | CRS84 | Das Koordinatenreferenzsystem, in dem Geometrien in dem Datensatz geführt werden. Der EPSG-Code des Koordinatenreferenzsystems wird als Integer in code angegeben. Mit forceAxisOrder kann die Koordinatenreihenfolge geändert werden: NONE verwendet die Reihenfolge des Koordinatenreferenzsystems, LON_LAT verwendet stets Länge/Ostwert als ersten und Breite/Nordwert als zweiten Wert, LAT_LON entsprechend umgekehrt. Beispiel: Das Default-Koordinatenreferenzsystem CRS84 entspricht code: 4326 und forceAxisOrder: LON_LAT . | object | v2.0 |
nativeTimeZone | UTC | Eine Zeitzonen-ID, z.B. Europe/Berlin . Wird auf temporale Werte ohne Zeitzone im Datensatz angewendet. | string | v2.0 |
typeValidation | NONE | Steuert ob die Spezifikationen der Objektarten daraufhin geprüft werden, ob sie zur Datenquelle passen (nur für SQL). NONE heißt keine Prüfung. Bei LAX schlägt die Prüfung fehl und der Start des Providers wird verhindert, wenn Probleme festgestellt werden, die in jedem Fall zu Laufzeitfehlern führen würden. Probleme die abhängig von den tatsächlichen Daten zu Laufzeitfehlern führen könnten, werden als Warnung geloggt. Bei STRICT führen alle festgestellten Probleme zu einem Fehlstart. Der Provider wird also nur gestartet, wenn keine Risiken für Laufzeitfehler im Zusammenhang mit der Datenquelle identifiziert werden. | string | v2.0 |
labelTemplate | string | v2.0 | ||
extensions | [] | Definition von Erweiterungen, siehe Erweiterungen. | array | v2.0 |
types | {} | Definition von Feature-Types. Die Einträge sind Schema-Definitionen mit type: OBJECT und mindestens einem Property mit role: ID . | object | v2.0 |
fragments | {} | Definition von wiederverwendbaren Schema-Fragmenten, die mittels schema in types referenziert werden können. Die Einträge sind beliebige Schema-Definitionen. | object | v2.0 |
auto | false | Steuert, ob die Informationen zu types beim Start automatisch aus der Datenquelle bestimmt werden sollen (Auto-Modus). In diesem Fall sollte types nicht angegeben sein. | boolean | v2.0 |
autoPersist | false | Steuert ob mit auto generierte Definitionen in die Konfigurationsdatei geschrieben werden sollen. Setzt voraus, dass der Store nicht READ_ONLY ist. | boolean | v2.0 |
autoTypes | [] | Liste von Quelltypen, die für die Ableitung der types Definitionen im Auto-Modus berücksichtigt werden sollen. Funktioniert aktuell nur für SQL. | array | v2.0 |
Schema-Definitionen
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
refType | string | v2.0 | ||
refUriTemplate | string | v2.0 | ||
sourcePath | string | v2.0 | ||
path | Deprecated Siehe sourcePath . | string | v2.0 | |
sourcePaths | [sourcePath] | array | v2.0 | |
type | STRING/OBJECT | Der Datentyp des Schemaobjekts. Der Standardwert ist STRING , sofern nicht auch die Eigenschaft properties angegeben ist, dann ist es OBJECT . Erlaubt sind: - FLOAT , INTEGER , STRING , BOOLEAN , DATETIME , DATE für einfache Werte. - GEOMETRY für eine Geometrie. - OBJECT für ein Objekt. - OBJECT_ARRAY für eine Liste von Objekten. - VALUE_ARRAY für eine Liste von einfachen Werten. | string | v2.0 |
role | null | Kennzeichnet besondere Bedeutungen der Eigenschaft. - ID ist bei der Eigenschaft eines Objekts anzugeben, die für die featureId in der API zu verwenden ist. Diese Eigenschaft ist typischerweise die erste Eigenschaft im properties -Objekt. Erlaubte Zeichen in diesen Eigenschaften sind alle Zeichen bis auf das Leerzeichen (" ") und der Querstrich ("/"). - TYPE ist optional bei der Eigenschaft eines Objekts anzugeben, die den Namen einer Unterobjektart enthält. - Hat eine Objektart mehrere Geometrieeigenschaften, dann ist PRIMARY_GEOMETRY bei der Eigenschaft anzugeben, die für bbox -Abfragen verwendet werden soll und die in GeoJSON in geometry oder in JSON-FG in where kodiert werden soll. - Hat eine Objektart mehrere zeitliche Eigenschaften, dann sollte PRIMARY_INSTANT bei der Eigenschaft angegeben werden, die für datetime -Abfragen verwendet werden soll, sofern ein Zeitpunkt die zeitliche Ausdehnung der Features beschreibt. - Ist die zeitliche Ausdehnung hingegen ein Zeitintervall, dann sind PRIMARY_INTERVAL_START und PRIMARY_INTERVAL_END bei den jeweiligen zeitlichen Eigenschaften anzugeben. | string | v2.0 |
valueType | STRING | Wird nur benötigt wenn type auf VALUE_ARRAY gesetzt ist. Mögliche Werte: FLOAT , INTEGER , STRING , BOOLEAN , DATETIME , DATE | string | v2.0 |
geometryType | null | Mit der Angabe kann der Geometrietype spezifiziert werden. Die Angabe ist nur bei Geometrieeigenschaften ( type: GEOMETRY ) relevant. Erlaubt sind die Simple-Feature-Geometrietypen, d.h. POINT , MULTI_POINT , LINE_STRING , MULTI_LINE_STRING , POLYGON , MULTI_POLYGON , GEOMETRY_COLLECTION und ANY . | string | v2.0 |
objectType | Optional kann ein Name für den Typ spezifiziert werden. Der Name hat i.d.R. nur informativen Charakter und wird z.B. bei der Erzeugung von JSON-Schemas verwendet. Bei Eigenschaften, die als Web-Links nach RFC 8288 abgebildet werden sollen, ist immer "Link" anzugeben. | string | v2.0 | |
label | Eine Bezeichnung des Schemaobjekts, z.B. für die Angabe in der HTML-Ausgabe. | string | v2.0 | |
description | Eine Beschreibung des Schemaobjekts, z.B. für die HTML-Ausgabe oder das JSON-Schema. | string | v2.0 | |
unit | Die Maßeinheit des Wertes, nur relevant bei numerischen Eigenschaften. | string | v2.0 | |
constantValue | null | Alternativ zu sourcePath kann diese Eigenschaft verwendet werden, um im Feature-Provider eine Eigenschaft mit einem festen Wert zu belegen. | string | v2.0 |
scope | null | Optionaler Geltungsbereich für Eigenschaften die entweder nur beim Lesen ( QUERIES ) * oder beim Schreiben (MUTATIONS ) verwendet werden sollen. | string | v2.0 |
schema | null | Referenz auf eine externe Schema-Definition. Der Default-Resolver löst Referenzen auf Einträge in fragments auf, z.B. #/fragments/example . Für weitere Resolver siehe Erweiterungen. | string | v2.0 |
ignore | false | Option um dieses Schemaobjekt komplett zu ignorieren. Der Hauptzweck ist es Teile von Schemas zu ignorieren, die mit schema referenziert werden. | boolean | v2.0 |
transformations | [] | Optionale Transformationen für die Eigenschaft, siehe Transformationen. | array | v2.0 |
constraints | {} | Optionale Beschreibung von Schema-Einschränkungen, vor allem für die Erzeugung von JSON-Schemas. Siehe Constraints. | object | v2.0 |
forcePolygonCCW | true | Option zum Erzwingen der Orientierung von Polygonen, gegen den Uhrzeigersinn für äußere Ringe und mit dem Uhrzeigersinn für innere Ringe (nur für SQL). | boolean | v2.0 |
isQueryable | see description | Eigenschaften, die nicht vom Typ OBJECT oder OBJECT_ARRAY sind, sind standardmäßig für Abfragen geeignet. Diese Einstellung kann verwendet werden, um eine Eigenschaft als nicht abfragefähig zu markieren, z. B. wenn die Eigenschaft nicht für die Verwendung in Abfragen optimiert ist. Ob eine geeignete Eigenschaft tatsächlich abgefragt werden kann entscheidet die Provider-Implementierung, das könnte aufgrund technischer Gründe nicht möglich sein. | boolean | v2.0 |
isSortable | see description | Nur die direkten Feature-Eigenschaften einer Objektart, die vom Typ STRING, FLOAT, INTEGER, DATE oder DATETIME sind, kommen als Sortierkriterien in Frage. Diese Einstellung kann verwendet werden, um eine Eigenschaft als nicht geeignet zu deklarieren, zum Beispiel, wenn die Eigenschaft nicht für die Verwendung in Abfragen optimiert ist. Ob eine geeignete Eigenschaft tatsächlich als Sortierkriterium verwendet werden kann entscheidet die Provider-Implementierung, das könnte aufgrund technischer Gründe nicht möglich sein. | boolean | v2.0 |
isLastModified | see description | Kennzeichnet eine DATETIME-Eigenschaft als eine Eigenschaft, die den Zeitstempel enthält, wann das Feature zuletzt geändert wurde. Diese Information wird beim optimistischen Sperren verwendet, um die Vorbedingungen zu bewerten, wenn ein CRUD-Request einen "Last-Modified"-Header enthält. | boolean | v2.0 |
properties | Nur bei OBJECT und OBJECT_ARRAY . Ein Objekt mit einer Eigenschaft pro Objekteigenschaft. Der Schüssel ist der Name der Objekteigenschaft, der Wert das Schema-Objekt zu der Objekteigenschaft. | object | v2.0 | |
merge | [] | Wenn nur einige properties in einem externen schema definiert sind, oder wenn nur einige properties auf eine andere Tabelle gemappt werden sollen, stellt diese Option einen komfortablen Weg zur Verfügung, um solche properties zusammen mit den regulären properties zu definieren. Der Wert ist eine Liste von Schema-Objekten, aber nur sourcePath , schema und properties werden berücksichtigt. Für Details siehe Mapping Operationen. | array | v2.0 |
allOf | [] | Deprecated Siehe merge . | array | v2.0 |
coalesce | [] | Wenn der Wert für ein Property aus mehr als einem sourcePath stammen kann, erlaubt diese Option den ersten Wert der nicht Null ist zu wählen. Die Option erwartet eine Liste von Werte-Schemas, für Details siehe Mapping Operationen. | array | v2.0 |
concat | [] | Wenn die Werte für ein Array-Property aus mehr als einem sourcePath stammen können, erlaubt diese Option alle verfügbaren Werte zu konkatenieren. Die Option erwartet eine Liste von Werte- oder Werte-Array-Schemas, für Details siehe Mapping Operationen. | array | v2.0 |
Connection Info
Informationen zu den Datenquellen finden Sie auf separaten Seiten: SQL und WFS.
Beispiel-Konfiguration (SQL)
Als Beispiel siehe die Provider-Konfiguration der API Weinlagen in Rheinland-Pfalz.
Mapping Operationen
Mapping Operationen können notwendig sein, wenn die Quell- and Ziel-Schema-Struktur zu unterschiedlich sind.
Merge
Wenn nur einige properties
in einem externen schema
definiert sind, oder wenn nur einige properties
auf eine andere Tabelle gemappt werden sollen, stellt diese Option einen komfortablen Weg zur Verfügung, um solche properties zusammen mit den regulären properties zu definieren.
Beispiele
Einige Properties in einem externen JSON schema definieren
example:
sourcePath: /main
type: OBJECT
allOf:
- properties:
id:
sourcePath: id
type: INTEGER
role: ID
- sourcePath: '[JSON]names'
schema: names.json
Spalten aus einer gejointen Tabelle im Haupt-Feature verwenden
example:
sourcePath: /main
type: OBJECT
allOf:
- properties:
id:
sourcePath: id
type: INTEGER
role: ID
- sourcePath: '[id=id]names'
properties:
name1:
sourcePath: name1
type: STRING
name2:
sourcePath: name2
type: STRING
Coalesce
Wenn der Wert für ein Property aus mehr als einem sourcePath
stammen kann, erlaubt diese Option den ersten Wert der nicht Null ist zu wählen.
Beispiel
foo:
type: OBJECT
properties:
bar:
type: VALUE
coalesce:
- sourcePath: bar_stringValue
type: STRING
- sourcePath: bar_integerValue
type: INTEGER
- sourcePath: bar_booleanValue
type: BOOLEAN
Typ-Kompabilität
Constraints on the types of inner properties depending on the type of the outer property are shown in the table below.
Outer type | Valid inner types | Remarks |
---|---|---|
VALUE | INTEGER , FLOAT , STRING , BOOLEAN , DATETIME , DATE | |
INTEGER | INTEGER | |
FLOAT | FLOAT | |
STRING | STRING | |
BOOLEAN | BOOLEAN | |
DATETIME | DATETIME | |
DATE | DATE | |
OBJECT | OBJECT | Different objectType with different schemas can be used |
FEATURE_REF | FEATURE_REF | Different refType can be used |
Concat
Wenn die Werte für ein Array-Property aus mehr als einem sourcePath
stammen können, erlaubt diese Option alle verfügbaren Werte zu konkatenieren.
Beispiel
foo:
type: OBJECT
properties:
bar:
type: FEATURE_REF_ARRAY
concat:
- sourcePath: '[id=foo_fk]baz1/id'
refType: baz1
- sourcePath: '[id=foo_fk]baz2/id'
refType: baz2
- sourcePath: '[id=foo_fk]bazn/id'
refType: bazn
Typ-Kompabilität
Constraints on the types of inner properties depending on the type of the outer property are shown in the table below.
Outer type | Valid inner types | Remarks |
---|---|---|
VALUE_ARRAY | VALUE_ARRAY , INTEGER , FLOAT , STRING , BOOLEAN , DATETIME , DATE | |
OBJECT_ARRAY | OBJECT_ARRAY , OBJECT | Different objectType with different schemas can be used |
FEATURE_REF_ARRAY | FEATURE_REF_ARRAY , FEATURE_REF | Different refType can be used |