kurioser Fall: Ich habe mit einem API-User (ist aktiv, Haken bei API-Zugang ist gesetzt, lokaler Admin) keinen Zugriff auf die API. Weder über Postman noch über das Ansteuern eines Endpoints mit dem Browser, z.B. api/version. Nutzername und API-Key sind korrekt. Der Shop gibt mir folgendes JSON zurück:
{
"success": false,
"message": "Invalid or missing auth"
}
Googeln brachte bisher keinen Erfolg. Habt Ihr ne Idee, woran das liegen könnte? Shopversion ist 5.5.10. Alt, ich weiß, aber diese Grundfunktionalität müsste der Shop doch beherrschen.
Edit: Das Problem besteht natürlich mit allen API-Usern, die ich anlege.
ich schlage mich derzeit mit dem selben Problem rum. Ein Kunde hat uns den Zugriff über die API im Backend eingestellt und den Api-Key mitgeteilt. Der Nutzer ist auch Aktiv und der haken bei API-Zugang ist auch aktiv. Dennoch bekommen wir dieselbe Fehlermeldung. Wenn ich direkt über den Browser versuche auf die api/articles zu navigieren und den entsprechenden Nutzer und Api-Key eintrage, werde ich immer wieder aufs neue aufgefordert die Credentials einzugeben. Kann es sein, dass noch eine Server-Konfiguration vorgenommen werden muss? (Im Backend steht auch „Für die Verwendung der REST-API ist evtl. eine Server Konfiguration notwendig. Mehr informationen“) Der Link führt jedoch zu keiner wirklichen Seite mehr
Ich glaube auch nicht, dass es sich um einen Shopware-Fehler handelt. Vielleicht eine Server-Konfiguration, wie b.cinar vermutet? Irgendwo ein Häkchen? Die URL stimmt soweit.
Der Nutzername ist 10 Zeichen lang, Groß- und Kleinbuchstaben, der Key wurde im Backend gewürfelt, sieht also so ähnlich aus: RaMTm08wdTDEd1yDJP5RF84XI0S4B76S8txfBB1f
Schon irgendwie beruhigend, dass man damit nicht allein ist.
Mir ist keine Server-Einstellung bekannt, die je auf die API Einfluss genommen hat. Die API ist ja nichts anderes wie ein Controller, also wie Frontend oder Backend. So aus der Ferne ist das hier eher Rätselraten. Müsste sich jemand mal direkt im Shop ansehen. An Shopware liegt es jedenfalls nicht - da ist mir so ein Verhalten bei den letzten Version noch nie aufgefallen.
Ich habe die Wayback Machine angeworfen. Die Seite ist archiviert. Der Artikel bezieht sich auf Shopware 4. Zum Thema Server-Konfiguration ist dort folgendes zu lesen:
<— Start—>
Es muss sichergestellt werden, dass der „Authorization“-Header an das PHP-Script weitergegeben wird. Apache + mod_fcgid
Auch interessant das im Shopware 5.5.x Backend ein Verweis auf Shopware 4 gemacht wird.
Aus meiner Seite ist es leider auch nicht möglich die Shopware Version des Kunden hochzuziehen.
Ich gehe aber auch eher davon aus, dass es an einer Server-Konfiguration liegt oder einer htaccess Datei. Wobei in meinem Fall keine htaccess-Datei vorliegt. Da muss irgendwas mit der Server-Konfiguration sein, welche man nicht direkt über das Shopware 5 Backend ansteuern kann.
Bei mir bzw. unserem Kunden ist ein Update auch eher ein Projekt für die nähere Zukunft als eine geeignete Maßnahme für jetzt. Man kennt das ja, da sind etliche Plugins im Betrieb, deren Kompatibilität zunächst einmal geprüft werden müsste.
Das gute ist doch schonmal, dass die Api diese Antwort sendet. Also ist die schonmal erreichbar. Wie übermittelst du nun die Daten?
GET, POST, PUT, UPDATE, welche art des AUTH, Body oder Header etc. Gib mal Beispiel.
Das ist tatsächlich auch meine Vermutung, also dass die Anmeldedaten nicht übermittelt werden . Nur eben serverseitig. Oder wie es auf der veralteten Seite zu Shopware 4 steht: dass der Authorization-Header nicht an PHP weitergegeben wird.
Wenn ich einen Endpoint über den Browser aufrufe, also ohne Schnittstelle, klappt’s ja auch nicht. Oder eben über Postman, Advanced Rest Client und andere - ja, alle getestet
Vergiss mal den alten Quatsch mit SW 4 und gibt uns mal ein Hinweis (wie bereits @brettvormkopp schon vorgeschlagen) wie du die Daten an den Shop übermittelst. Wir werden hier nicht fertig und Raten nur im Kreis. Das führt zu nichts.
Aber eine weitere Analyse ist nun nicht mehr notwendig: Der „Quatsch mit SW4“ hat mich zur Lösung gebracht. In der .htaccess aus dem root-Verzeichnis fehlte dieser Eintrag:
Wieso über den Browser? Das ist eher ungewöhnlich. Probier das doch mit dem Programm „Postman“. Und die Zeile in der htaccess ist doch eigentlich Standard … komisch … Aber schön wenn es jetzt doch geht
Vielleicht nicht Standard bei Shopware 5.5.10? Ich weiß es nicht. Ich habe den Shop allerdings auch nicht aufgesetzt.
Natürlich nutzt der Kunde eigentlich eine Schnittstelle von uns, da aber die API-Verbindung damit fehlschlug, war bei Lösungsversuchen der Weg zum Testen über den Browser der schnellste. Dafür musste die Schnittstelle ja nicht einmal installiert sein.