# Request mit API Key

## Base URL / Authentifizierung / Request Headers

Die Base URL für alle Requests lautet

```
https://api.mopage.ch
```

Die Authentifizierung erfolgt mit einem vorgängig kommunizierten API Key, der im Request Header wie folgt mitzuliefern ist:

```
X-Api-Key: {client_api_key_here}
```

## Daten anliefern

Mit referenziertem XML File:

```
PUT /api/v1/xmldata?urldata=ENCODED_URL_TO_XML_FILE
```

Daten direkt liefern:

```
POST /api/v1/xmldata/{importid}
```

Hierbei werden die XML Daten im Body des POST Requests mitgeliefert.

Als Response erhält man in der Folge eine Liste mit den eingefügtn/geupdateten/gelöscten Datensätzen:

```xml
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<import importid="86" date="2023-06-23T15:57:08+02:00">
    <item id="1358360" objektkey="2126862070" parent="7682391" usid="111" action="updated" titel="Atelieraufenthalt in Kairo für Carina Kirsch" mutationsdatum=""/>
    <item id="7895" objektkey="456488029" parent="7682391" usid="111" action="inserted" titel="Weiterer Titel" mutationsdatum=""/>
    <item id="13583601" objektkey="1889323642" parent="7682391" usid="111" action="inactivated" titel="" mutationsdatum=""/>
</import>
```

## Liste aller Datensätze anfordern

```
GET /api/v1/xmldata/getlist/{importid}
```

`{importid}` ist hierbei mit der effektiven Resource zu ersetzen

Als Resultat erhalten Sie ein XML in folgender Form:

```xml
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<list>
    <item status="1" suchbar="1" datumvon="" datumbis="" geloescht="0">
        <id>01</id>
        <objektkey>123456789</objektkey>
        <titel>Datensatztitel</titel>
    </item>
    <item status="1" suchbar="1" datumvon="" datumbis="" geloescht="0">
        <id>03</id>
        <objektkey>112233</objektkey>
        <titel>Anderer Titel</titel>
    </item>
</list>
```

## Einzelner Datensatz löschen

```
DELETE /api/v1/xmldata/delete/{importid}/{id}
```

`{importid}` und `{id}` (ID des Datensatzen auf Source System) sind hierbei mit den effektiven Resourcen zu ersetzen.

Als Response erhält man dann folgende Erfolgmeldung:

```xml
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<import importid="111" date="2023-06-23T16:07:34+02:00">
    <item id="123456" objektkey="2126862070" usid="123" action="inactivated" titel="Atelieraufenthalt in Kairo für Carina Kirsch" />
</import>
```

## Aufbau der Daten

Der [XML Aufbau](https://doc.anthrazit.org/books/xml-schnittstelle/page/xml-aufbau "XML Aufbau") ist detailliert dokumentiert. Da die Authentifizierung per API Key erfolgt, können im Root Element `<import>` sämtliche Attribute weggelassen werden.

## Seitentypen

Wie die verschiedenen Seitentypen aufgebaut sein sollten, welche Elemente eingesetzt werden, entnehmen Sie der jeweiligen Doku:

- [News](https://doc.anthrazit.org/books/xml-schnittstelle/page/news "News")
- [Standort](https://doc.anthrazit.org/books/xml-schnittstelle/page/standort "Standort")
- [Veranstaltung](https://doc.anthrazit.org/books/xml-schnittstelle/page/veranstaltung "Veranstaltung")