Admin API, wie SwagQL nutzen?

Hi zusammen,

kann mir jemand sagen wie man man einem GET endpoint der Admin API eine query mitgibt?

Zum Beispiel für die Medien:

Bei dem Parameter „limit“ schicke ich ein GET an https://{{host}}/api/media?limit=1 und bekomme ein Ergebnis. Das passt.

Wie funktioniert es aber für den „query“ Parameter? Was heißt genau „Encoded SwagQL in JSON“?

Folgendes Json

{
  media(id: "00042729f148477e84f9ef45ab53a4a7") {
    type
  }
}

URL-encoded ergibt: %7B%0Amedia%28id%3A%20%2200042729f148477e84f9ef45ab53a4a7%22%29%20%7B%0Atype%0A%7D%0A%7D

Hier bekomme ich immer alle Ergebnisse zurück (Volle Größe 22 MB, s. Bild)

Hat jemand eine Idee? Ich nutze Shopware 6.5.5.1.

Viele Grüße,
Alex

Hatte gerade ein ähnliches Problem. Für deinen Fall macht ein Query eigentlich wenig Sinn, weil Du direkt die Entity abfragen kannst: GET /api/media/00042729f148477e84f9ef45ab53a4a7

Als Query funktioniert es aber natürlich trotzdem: /api/media?query%5Bquery%5D%5Bquery%5D%5Btype%5D=equals&query%5Bquery%5D%5Bquery%5D%5Bfield%5D=id&query%5Bquery%5D%5Bquery%5D%5Bvalue%5D=00042729f148477e84f9ef45ab53a4a7

$swagQL = json_decode('{
    "query": {
      "query": {
        "query": {
          "type": "equals",
          "field": "id",
          "value": "00042729f148477e84f9ef45ab53a4a7"
        }
      }
    }
  }');

echo '/api/media?' . http_build_query($swagQL);