# Antwortformat und Fehler

## **1. Erfolgreiche Antwort (Correct Response)**
Ein erfolgreicher API-Aufruf liefert eine **JSON-Antwort** mit den abgefragten Daten. Das folgende Beispiel zeigt eine Antwort für die Abfrage von PowerDog-Geräten eines bestimmten Eigentümers.

```json
{
    "query": "SELECT * FROM powerdog WHERE pdowner=29812;",
    "valid": 1,
    "powerdogs": [
        {
            "timezone": "Europe/Vienna",
            "id": "36789",
            "name": "Testanlage4Hütter",
            "description": "",
            "address_zip": "5280",
            "address_city": "Braunau am Inn",
            "address_country": "AUT",
            "address_street": "Mozartstraße",
            "address_no": "33",
            "longitude": "13.04096985",
            "latitude": "48.24743652",
            "published": "0",
            "owner": "29812",
            "uid": "PD2402-0019",
            "server_id": "31"
        },
        {
            "timezone": "Etc/GMT+0",
            "id": "37641",
            "name": "TestGerät",
            "description": null,
            "address_zip": "",
            "address_city": "",
            "address_country": null,
            "address_street": "",
            "address_no": "",
            "longitude": null,
            "latitude": null,
            "published": null,
            "owner": "29812",
            "uid": "0815",
            "server_id": "101"
        },
        {
            "timezone": "Europe/Vienna",
            "id": "38586",
            "name": "Testanlage5Hütter cm4s",
            "description": null,
            "address_zip": "",
            "address_city": "",
            "address_country": null,
            "address_street": "",
            "address_no": "",
            "longitude": null,
            "latitude": null,
            "published": "0",
            "owner": "29812",
            "uid": "PD2502-0033",
            "server_id": "31"
        }
    ]
}
```

### **Erklärung der Felder**
- **`query`**: Die SQL-Abfrage, die der API-Server ausgeführt hat.
- **`valid`**: Gibt an, ob die Anfrage gültig war (`1` = gültig, wenn nicht vorhanden = ungültig)
- **`powerdogs`**: Liste der PowerDog-Geräte
---



## **2. Fehlerhafte Antwort (Faulty Response)**
Falls eine Anfrage fehlschlägt, gibt die API eine **Fehlermeldung** mit einem Fehlercode zurück.

```json
{
    "faultString": "Authentication failed",
    "faultCode": 100
}
```

### **Fehlermeldungen und Codes**
| Fehlercode | Beschreibung                                                       |
|------------|--------------------------------------------------------------------|
| `100`      | Authentifizierung fehlgeschlagen (z. B. ungültiger `apikey`).       |
| `101`      | Keine Rechte auf den SmartDog der angegebenen ID                                 |
| `102`      | Kann keine Verbindung zur Datenbank herstellen                     |
| `103`      | Datenbankanfrage fehlerhaft  |
| `104`      | Fehlende Parameter  |

Falls eine API-Anfrage fehlschlägt, sollte überprüft werden:
1. Ob der **`apikey`** korrekt ist.
2. Ob alle benötigten **Parameter** vorhanden sind.
3. Ob die Werte in der **richtigen Form** übergeben wurden.

<p class="callout info">Jede Antwort die nicht valid = '1' enthält, kann als fehlerhaft gewertet werden</p>

---

## **3. Zusätzliche Hinweise**
- Alle API-Antworten werden im **JSON-Format** zurückgegeben.
- Fehlermeldungen enthalten eine **`faultString`**-Beschreibung und einen **`faultCode`** zur schnellen Identifikation des Problems.
- Erfolgreiche Antworten enthalten immer das Feld **`valid: 1`**, während fehlerhafte Antworten eine **`faultString`**-Nachricht enthalten.

---

**© 2025 PowerDog API – Alle Rechte vorbehalten**