JSon Objekt erstellen, welcher Aufbau

Hallo und einen schönen Feiertag :slight_smile: Hab wieder ne Frage zu API.

Ich bin davon ausgegangen, dass ein API Post den gleichen json Aufbau haben muss/kann, wie ein eine GET Response.
Und anhand des json aus der Response meine Objekte nachbauen kann, aber Pustekuchen.

Beispielsweise rufe ich einen Artikel von einer API ab und bekomme so den Aufbau, welchen ich auch für mein POST nutzen wollte. Aber nö, der POST muss einen ganz anderen Aufbau haben.

Nun habe ich das „Problem“, dass ich nicht weiß wie mein json aussehen muss, den ich für das Neuanlegen eines Produktes, an den Server senden muss. In der Dokumentation steht zwar drin wie ich mit PHP ein Produkt anlege, aber das muss ich nun in Java „übersetzen“ damit ich mein benötigtes json Objekt erhalte

Bin ich auf dem Holzweg? Wie komme ich zum benötigten Aufbau meines json String?
Hier die entsprechende Dokuhttps://developers.shopware.com/developers-guide/rest-api/examples/article/#step-1-create-a-new-product

Hallo,

nein, ein GET muss natürlich nicht dieselbe Struktur wie der eigentliche POST haben. Generell muss man sich bei REST mehr Gedanken über die Dokumentation machen. Das hier Shopware nicht einfach ein JSON angibt ist schade, sollte sich aber übersetzen lassen.

{
    'name': 'Sport Shoes',
    'active' => true,
    'tax' => 19,
    'supplier' => 'Sport Shoes Inc.',
    'categories': {
        'id': 15,
    },
    'mainDetail': {
        'number': 'turn',
        'active': true,
        'prices': {
            'customerGroupKey':  'EK',
            'price': 999,
        },
    }
}

Da ich mit PHP keine Erfahrungen habe, weiß ich nicht ob array( wirklich ein Array ist. Macht hier mMn keinen Sinn.

Danke dir, hab es hinbekommen. Ein Objekt wird als Array übersetzt

bezüglich categories und prices würde ich dennoch eher ein Array erwaten.

also

    'categories':[
        { 'id': 15 }
    ]

und

    'prices': [
      {
        'customerGroupKey':  'EK',
        'price': 999,
      }
    ]

so ist korrekt, wie du es geschrieben hast.