„api v1 ema json properties de“ hinzufügen

mpeltriaux 2022-04-27 10:28:23 +02:00
parent ebb90bf09b
commit b3e0943d68

@ -0,0 +1,181 @@
# Json Attribute
## EMA
Der Aufbau der EMA Attribute ähnelt in weiten Teilen [dem der Kompensation](api-v1-compensation-json-properties-de) und [des Ökokontos](api-v1-ecoaccount-json-properties-de).
### Beispiel
<details>
<summary>Beispiel body (POST|PUT)</summary>
```json
{
"type": "MultiPolygon",
"coordinates": [
[
[
[
7.845568656921382,
50.79829702304368
],
[
7.837371826171871,
50.80155187891526
],
[
7.835698127746578,
50.805267562209806
],
[
7.841062545776364,
50.806623577403386
],
[
7.848916053771969,
50.808359219420474
],
[
7.855696678161618,
50.807057493952975
],
[
7.854666709899899,
50.80423696434001
],
[
7.850461006164548,
50.80217570040005
],
[
7.845568656921382,
50.79829702304368
]
]
]
],
"properties": {
"title": "EMA 123",
"responsible": {
"conservation_office": "710123",
"conservation_file_number": null,
"handler": {
"type": "710178",
"detail": "Firma Mustermann234"
}
},
"before_states": [
{
"biotope": "136156",
"biotope_details": [
"138046",
"161751"
],
"surface": 1.0
}
],
"after_states": [
{
"biotope": "136164",
"biotope_details": [],
"surface": 1.0
}
],
"actions": [
{
"action_types": [
"709297",
"709289",
"709299"
],
"action_details": [],
"amount": 1.0,
"unit": "cm",
"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 Eintrags
* `title` (str):
* Bezeichnung/Titel des EMAs
* `responsible`:
* Enthält Informationen über zuständige Eintragungsstelle/Naturschutzbehörde und ausführenden Akteur ("Maßnahmenträger")
* `responsible.conservation_office` (str):
* Identifiziert eindeutig die zuständige Eintragungsstelle (z.B. "Kreisverwaltung XY")
* `responsible.conservation_file_number` (str):
* Aktenzeichen der Eintragungsstelle
* `handler`:
* Enthält Informationen über den Maßnahmenträger
* `handler.type` (str):
* Identifiziert eindeutig die Art des Maßnahmenträgers (z.b. "Stadt", "Sonstige und private Träger", ...)
* `handler.detail` (str):
* Weitere Details zum Maßnahmenträger
* `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_types` (list):
* Identifiziert eindeutig eine Menge von Maßnahmen, die zusammengehörig durchgeführt werden
* `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 des Eintrags 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: []