Kategorien
REST API Schnittstellen

JSON Design

Sie wollen eine JSON Datei erstellen, aber wissen nicht recht wie Sie diese aufbauen sollen.

In diesem kleinen Beitrag versuchen wir Ihnen ein Verständnis für gute und strukturierte JSON Dateien zu liefern.

Fangen wir mal mit einer kleinen Beispiel Datei an. Die JSON Datei soll uns nur den die uns einige Logs ausgeben. Dazu gucken wir uns erstmal eine unaufgeräumtere Version an und dann eine besser strukturierte.

{
    "logs": {
        "date": "2021-02-01",
        "total": "2",
        "logs": [
            {
                "logTime": 00:00:03,
                "logText": "Access: Authenticated by api token ..."
            },
            {
                "logTime": 06:00:02,
                "logText": "Access: Authenticated by api token ..."
            }
        ]
    }
}

Wenn wir uns diese Datei ansehen, dann fällt uns auf, dass teilweise Integer als Text angegeben sind, Wie Sie in Line 4 sehen, oder in den logs sich die logs doppeln. Auch darin werden die time und der Text nochmals mit dem Keyword log versehen. Wenn wir das nun einmal bereinigen, dann sollte es wie folgt aussehen. Dabei wird es viele verschiedne „richtige“ Lösungen geben.

{
    "date": "2021-02-01",
    "total": 2,
    "logs": [
        {
            "time": "00:00:03",
            "text": "Access: Authenticated by api token ..."
        },
        {
            "time": "06:00:02",
            "text": "Access: Authenticated by api token ..."
        }
    ]
}

Wie wir jetzt sehen ist die Datei gleich viel aufgeräumter und ordentlicher. Man sollte immer darauf achten, dass man zu dem Wert auch den korrekten Typ verwendet. Gerade bei einer Sprache die nicht auf Typisierung setzt passieren sonst schnell „Fehler“. Bei der Verwendung von einigen Typen besteht noch Streitbedarf. Gerade bei Preisen gehen die Meinungen auseinander. Hier gibt zum Beispiel WooCommerce in Ihrer REST API die Preise als strings aus. In der API von Shopware5 werden diese als float64 ausgegeben.

Versuchen Sie einfach etwas auf die Typen zu achten. Aber gerade in einer Objektorientierten Sprache sollte das nicht all zu schwer sein.

Hier haben wir noch ein winzig kleines Cheet Sheet für Sie zusammengestellt, welches Sie gerne nutzen können.

{
    "string": "Hallo zusammen",
    "integer": 42,
    "bool": true,
    "array": ["Wert", "Wert", "Wert"],
    "object": {
        "firstname": "Jonas",
        "surname": "Kwiedor",
        "old": 23
    }
}

Natürlich sind das nicht alle Typen, die es so gibt. In einem kommenden Artikel werden wir das Thema JSON mit dem Schema erweitern.

Ich hoffe Ihnen hat dieser kleine Beitrag gefallen. Bei Fragen hinterlassen Sie gerne einen Kommentar.

Von Jonas Kwiedor

Full- Stack Developer aus Hamburg. Liebt es sich mit Schnittstellen & Automationen auseinander zu setzen und sich mit der Programmiersprache GO Lang zu beschäftigen.