API-Call: Kein requestBody bei GET-Methoden

Hallo,

sowohl im API-Call, als auch im URLDownload ist es nicht möglich, einen requestBody anzugeben, wenn GET als Methoden ausgewählt ist.
Ist das Absicht oder nur eine Einstellungssache? Wäre cool wenn das funktionieren würde, damit man das Ergebnis bspw. schon beim Abruf filtern kann.

Viele Grüße
Robin

Hallo Robin,

das ist Absicht. Üblicherweise wird beim GET Request kein Request Body übergeben.

Zitat aus RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content :

 A payload within a GET request message has no defined semantics;
   sending a payload body on a GET request might cause some existing
   implementations to reject the request

Im Normalfall sollte es bei GET möglich sein die angesprochenen „Filter“ direkt als Parameter in der URL zu übergeben, z.B. https://www.synesty.com?filter1=a&filter2=b.

Falls du Fragen dazu oder ein spezielles Beispiel hast, kannst du uns das gerne schicken.

Viele Grüße
Torsten

Hallo Torsten,

danke für deine Unterstützung.
Das Shopware ERP bietet die Möglichkeit im GET Request die Möglichkeit, Lager bzw. Lagerplätze zu filtern, um das Ergebnis zu reduzieren.
Dies funktioniert wie folgt:

{
    "filter": [
        {
            "property": "binLocation.warehouseId",
            "expression": ">=",
            "value": 26
        },
        {
            "property":"binLocation.code",
            "expression":"!=",
            "value":"pickware_null_bin_location"
        }
    ]
}

Ich sehe keine Möglichkeit das als Parameter zu übergeben.

Viele Grüße
Robin

Hallo Robin,

schau mal hier rein: REST API Basics — Shopware ERP for Shopware 5 6.15.0 documentation. Da ist es ganz gut beschrieben.

Unter Bin Locations API — Shopware ERP for Shopware 5 6.15.0 documentation findest du auch ein Beispielfilter:

VG Torsten