Graphql-Fehler: Cannot query field ... on type

Hi zusammen,

beim Ausführen des folgenden Querys bekomme ich die Fehlermeldung “Cannot query field “customer” on type “Query”.”:

query customerDetails {
  customer {
    id
    email
    birthdate
  }
}

Der “Customer” ist richtig angelegt und auch das zugehörige Bearer-Token wurde als Header hinterlegt (siehe Altair-Screenshot im Anhang). Meine installierte GraphQL Base-Version ist 6.0.1. Die Storefront Version ist 2.0.1. Allerdings ist hier der Type “Customer” auf jeden Fall schon definiert und ich kann einfach nicht sehen wo der Fehler liegt. Wäre daher sehr dankbar, wenn mir jemand von euch einen Hinweis geben könnte.

Vielen Dank!

Moin :slight_smile:

die Query Syntax ist korrekt.

Deine Authorization scheint nicht zu funktionieren. Das Erste was ich probieren würde an Deiner Stelle Authorization durch Bearer zu ersetzen und als Wert nur den Token.

Selber bin ich auf Postman umgestiegen, weil die GUI für mich anwenderfreundlicher ist.

Viele Grüße
Tim

Vielen Dank für den Hinweis, Tim. Ich habe jetzt festgestellt, dass es in der Version 6.0.1 des GraphQL Base Moduls wirklich kein Query für “customer” gibt. Ich hatte das im Webinar (wo die 7.0-Version verwendet wurde) gesehen und bin einfach davon ausgegangen, dass das Query vorhanden ist. Hab jetzt aber nochmals im Schema nachgeschaut und da fehlt es tatsächlich.

Gruß,
Robert

Aso dies kann auch sein, ich habe mit 7.0 gegengetestet. Musste vorab noch Datenbank Migration Konsolenbefehl durchführen, damit neue Token Datenbank Tabelle angelegt wird. Da ich ursprünglich auch die 6.0 hatte.

Ansonsten ist Customer im Storefront Modul, das Basis Modul nur für den Token und Schnittstelle gedacht.

Kann die Version 7.0 auch unter OXID 6.4.2 installiert werden, oder ist dafür die neue 6.5 nötig?

Brauchst 6.5er Serie, die Aufschlüsslung der Kompatibilitäten findest unter GitHub - OXID-eSales/graphql-base-module: The main framework for using GraphQL in OXID

OK, dann werden wir erstmal OXID updaten müssen. Vielen Dank dir!

1 Like

Jetzt gibt es doch noch einige Zusatz-Infos zu diesem Fall:
Ich hatte den Fehler (Cannot query field “customer” on type “Query”), als ich die Queries auf die Live-Instanz geschossen habe. Danach hab ich erstmal an anderen Baustellen gearbeitet und bin in dem Zuge auch auf die GraphQL-Api von meiner lokalen Entwicklungsumgebung gewechselt. Irgendwann hatte ich mich dann gewundert, dass die Customer-Query jetzt ansprechbar war, hatte es aber dummerweise nicht mehr mit dem Switch auf die Dev-Umgebung in Verbindung gebracht.
Jetzt wo ich das wieder mit der Live-Instanz testen wollte, hab ich wieder das alte Problem.

Allergings ist sowohl die OXID-Version als auch die Versionen GraphQL-Module komplett identisch (zwischen Live und Dev). Es lag also schon mal nicht daran, dass die Version 6 des GraphQL-Base-Moduls die Customer-Query nicht enthält.
Hat jemand von euch noch eine Idee, woran das noch liegen könnte, dass ich im Live-System einige der Abfragen nicht zur Verfügung habe?

services.yaml identisch? Datenbankhaltung identisch?

  1. Im Zweifel Module erneut über Install Befehl anmelden
  2. Module über Admin oder CLI reaktivieren
  3. Composer Autoload refreshen

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.