D8 - > REST-Service richtig nutzen
am 21.08.2015 - 08:30 Uhr in
Guten Morgen,
ich spiele gerade mit der REST Api von Drupal 8, dafür habe ich folgende Module aktiviert:
HTTP Basic Authentication
REST UI
RESTful Web Services
Serialization
über die REST UI habe ich dem
Content //node/{node} mit Post und Get aktiviert mit basic_auth und den Formaten xml und json aktiviert.
zusätzlich habe ich für einen View einen "Rest export" erzeugt. (rest/testview)
Als Permissions habe erstmal haben die drei standard Rolen die Genehmigung für folgende Funktion:
Access GET on Content resource
Access POST on Content resource
So nun zu den eigentlichen Abfragen:
Node:
http://domain.de/node/1 => Get => liefert Webseite mit entsprechendem Node
http://domain.de/node/1?_format=xml => Get => liefert entsprechenden Node als xml
http://domain.de/node/1?_format=json => Get => liefert entsprechenden Node als json
View:
http://domain.de/rest/testview => Get => direkt auf die xml Ansicht (ist im View so konfiguriert)
http://domain.de/rest/testview?_format=json => Get => {"message":"No route found for the specified format json."} (funktioniert also wie es soll)
Nun habe ich dem anonymen User die Rechte entzogen:
Node:
http://domain.de/node/1 => Get => liefert Webseite mit entsprechendem Node
http://domain.de/node/1?_format=xml => Get => werde ich nach einem Passwort und Benutzernamen gefragt und sehe nach der Eingabe den Entsprechenden XML-Code (via Postman oder RESTClient, kommt Access Denied)
http://domain.de/node/1?_format=json => Get => bekomme ich folgende Fehlermeldung {"message":"Not acceptable"}, keine Aufforderung nach einem Passwort (via Postman oder RESTClient, kommt Access Denied)
View:
http://domain.de/rest/testview => Get => Webseitenansicht die mir erklärt Access denied, ebenfalls über Postmann Access denied
Ich bin mir nicht sicher ob ich Postman richtig nutze, ich gebe eine basic Authorization mit Username und Password mit und zusätzlich im Header Accept mit application/xml bzw application/json. Jedoch bekomme ich bei Get die genannten Probleme.
Bei POST sieht es noch "schlimmer" aus, denn egal was ich dem Header mitgebe ich bekomme immer Access denied 403 forbidden, sowohl beim View als auch beim Node.
Hat vielleicht von euch schon jemand den Spaß zum Laufen gebracht?
mit bestem Gruß
Andy
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo Andy, Du bekommst
am 24.08.2015 - 15:47 Uhr
Hallo Andy,
Du bekommst vermutlich den 403, weil Du per Postman/Restclient die PHP Session nach dem Anmelden nicht
mitsendest.
Du bekommst diese Session nach dem Anmelden(Form/Basic Authentication) vom Server(PHP) .
Schau Dir mal in Firebug(Browser) an, wie die Session mitgesendet wird.
Gruss
Robert