„api v1 compensation json properties de“ hinzufügen

mpeltriaux 2022-04-27 10:00:40 +02:00
parent fe84ba24d3
commit 8b1ab0b6a2

@ -0,0 +1,179 @@
# Json Attribute
## Kompensation
### Beispiel
<details>
<summary>Beispiel body (POST|PUT)</summary>
```json
{
"type": "MultiPolygon",
"coordinates": [
[
[
[
7.477097511291501,
50.14218444767971
],
[
7.479243278503415,
50.140479182654374
],
[
7.483620643615721,
50.14300955409459
],
[
7.482976913452146,
50.14405466845533
],
[
7.481346130371092,
50.14416467916495
],
[
7.479929924011228,
50.143174573669675
],
[
7.47808456420898,
50.14232196640389
],
[
7.477097511291501,
50.14218444767971
]
]
]
],
"properties": {
"title": "Kompensation 123",
"is_cef": false,
"is_coherence_keeping": false,
"intervention": "97d7cce8-83e9-4043-bc76-317caf983a41",
"before_states": [
{
"biotope": "136156",
"biotope_details": [],
"surface": 1000.0
},
{
"biotope": "136156",
"biotope_details": [],
"surface": 11.0
},
{
"biotope": "136159",
"biotope_details": [
"138046",
"161751"
],
"surface": 1.0
}
],
"after_states": [
{
"biotope": "136204",
"biotope_details": [],
"surface": 1000.0
}
],
"actions": [
{
"action": "709452",
"action_details": [],
"amount": 1000.0,
"unit": "qm",
"comment": ""
},
{
"action": "709130",
"action_details": [
"709649",
"709709"
],
"amount": 1.0,
"unit": "pcs",
"comment": ""
}
],
"deadlines": [
{
"type": "finished",
"date": "2022-01-31",
"comment": ""
}
]
}
}
```
</details>
### Attribute
* `type`:
* Muss immer `MultiPolygon` sein
* `coordinates`:
* Enthält die Koordinaten der Geometrie(n) (EPSG:4326)
* `properties`:
* Enthält die Attribute des Eingriffsobjektes
* `title` (str):
* Bezeichnung/Titel des Eingriffs
* `is_cef` (boolean):
* Ob die Kompensation eine CEF Maßnahme darstellt
* `is_coherence_keeping` (boolean):
* Ob die Kompensation eine Kohärenzsicherung darstellt
* `intervention` (str):
* Id des zugehörigen Eingriffs (muss bereits angelegt worden sein)
* `before_states` (list):
* Enthält Informationen zu einer Menge von Biotopen, welche sich vor Durchführung der Kompensation auf der angegebenen Fläche befanden
* `before_state.biotope` (str):
* Identifiziert eindeutig einen Biotoptyp
* `before_state.biotope_details` (list):
* Identifiziert eindeutig eine Menge von Zusatzmerkmalen, welche dem Biotop zugeordnet werden können
* `before_state.surface` (float):
* Flächenmenge des Biotops in m²
* `after_states` (list):
* Enthält Informationen zu einer Menge von Biotopen, welche sich nach Durchführung der Kompensation auf der angegebenen Fläche befinden
* Aufbau identisch zu `before_states`
* `actions` (list):
* Enthält Informationen zu einer Menge von konkreten Maßnahmen, welche durchgeführt wurden, um die beschriebene Biotopveränderung zu bewirken
* `action.action` (str):
* Identifiziert eindeutig eine Maßnahme
* `action.action_details` (str):
* Identifiziert eindeutig eine Menge von Zusatzmerkmalen, welche der Maßnahme zugeordnet werden können
* `action.amount` (float):
* Menge/Anzahl der Maßnahme
* `action.unit` (str):
* Einheitstyp für `amount`
* Valide Einheiten sind: ["cm", "m", "km", "qm", "ha", "pcs"] ~(cm, m, km, m², ha, St.)
* `action.comment` (str):
* Kommentarfeld zur genaueren Beschreibung der Maßnahme (ehem. "Maßnahmenerläuterung")
* `deadlines` (list):
* Enthält Informationen zu einer Menge von Terminen bzw. Fristen
* `deadline.type` (str):
* Art des Termins/der Frist
* Valide Arten sind: ["finished", "maintain", "control", "other"] ~(Umsetzung bis, Unterhaltung bis, Kontrolle am, Sonstige)
* `deadline.date` (str):
* Datum des Termins/der Frist (ISO Format)
* `deadline.comment` (str):
* Kommentarfeld zur genaueren Beschreibung des Termins/der Frist
### Pflichtattribute
#### beim Anlegen
Initial wird per API mindestens ein `title` und eine (ggf. leere) Geometrie erwartet. Alle übrigen Informationen können nachträglich per `PUT` bearbeitet/hinzugefügt werden.
#### beim Bearbeiten
Es werden nur die Attribute in `properties` ausgewertet, die vorhanden sind. Soll z.B. nur der Titel der Kompensation geändert werden, genügt es in `properties` nur das `title` Attribut mitzusenden. Alle übrigen Daten bleiben unverändert.
**Achtung:**
Dieser Ablauf bezieht sich nur auf Attribute in `properties`. Die aktuell zu verwendende Geometrie muss immer mitgeschickt werden.
### Null Werte
Falls ein Attribut gelöscht werden soll, kann beim nächsten `PUT` der leere Wert `null` für dieses Attribut angegeben werden. Für Listenattribute wird hingegen die leere Liste [] genutzt.
### Auswertung von Listen
Listenattribute werden, falls angegeben, immer vollständig ausgewertet. Soll also eine gesetzte Liste ["a", "b", "c"] mittels `PUT` überarbeitet werden und z.B. "b" entfernt werden, muss die Liste wie folgt beim nächsten `PUT` angegeben werden: ["a", "c"].
Sollen alle Einträge in der Liste entfernt werden, wird die leere Liste übergeben: []