Ich kann Artikel über REST
ohne Probleme erstellen . Aber ich kann nicht herausfinden, wie man Dateien einreicht.
Wie sende ich Dateien (Bilder) über an Drupal 8 REST
?
Aktualisieren:
REST UI - File: /file/{id}
Example image added in article:
/admin/content/files -> /admin/content/files/usage/1
file {id} = 1?
Get file id 1:
curl --request GET --user admin:admin --header 'Accept: application/hal+json' http://d8.local/file/1
A fatal error occurred: No route found for "GET /file/1"
Bild posten (ohne Entitätsinhalt):
curl --request POST --user admin:admin --header 'Content-type: application/hal+json' http://d8.local/entity/file
{"error":"No entity content received."}
Ich kann nicht herausfinden, wie man das erstellt entity content
.
Antworten:
drush dl restui-8.x-1.x
/entity/file/{file}
POST an drupal.url / entity / file /
quelle
EntityResource.php
basierend auf Ihrem Patch und Zeile 117 geändert , ich habe die Entitäts-ID zurückgegeben und ich habe jetzt zumindest einen Verweis darauf:$response = new ResourceResponse(NULL, 201,['id' => $entity->id()]);
$entity->id()
der Antwort hinzugefügt . Ich übergebe die Entitäts-ID an den Knoten und jetzt weiß dieser Knoten über das Bild Bescheidfile_managed
Tabelle hinzugefügt wird . Diese Zeile hat eine eindeutigefid
. Ich glaube, der nächste Schritt besteht darin, die Erstellung eines neuen Knotens mit einem Bildfeld zu POSTEN und dasfid
zu verwenden, um das Bildfeld mit der Datei zu verknüpfen. Wenn ich Sie verstehe, ist die Frage, wie Sie feststellen können,fid
wann nichts zurückgegeben wird. Ich habe heute in einem Drupal-Thread festgestellt, dass die zukünftige Version der REST-Benutzeroberfläche die vollständige Entität zurückgeben wird, bin mir jedoch nicht sicher, wie ich dieses Problem vorerst lösen soll.Folgendes Format der Post-Daten (Base64-Encoder für Bilddaten verwenden)
{ "_links": { "type": { "href": "http://d8.local/rest/type/file/image" } }, "filename": [ { "value": "favicon-32x32.png" } ], "filemime": [ { "value": "image/png" } ], "filesize": [ { "value": "488" } ], "type": [ { "target_id": "image" } ], "data": [ { "value": "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAkUExURUxpcSOq4SOq4SOq4SOq4SOq4SOq4SOq4SOq4SOq4SOq4SOq4U0m8UcAAAAMdFJOUwD/EvAm2qhTPMRrkl4CMYAAAAE1SURBVCjPXZG/S8NQEMePR7Ehnb48khC7BEFFnYJD6/aWOLilVBy6WBVc648/oCii1KlFKDrFwV2tqH+edy9Rk7zh8e7Dfe++944oP5dUO59RDQyPqrFK/WqKCzxUwA30oJyymervlVK8PsVBOd85hh6pyflfhwXg024cjguwBqCjhsCsSOAn+k4MBGpUWAB6Tb6W1VxAgv+MfcPgWUBgazjxoYwlQLrsmBa6MhbH3hep2yu6QJuowWL9Yfs1U4QRSbWOjRts0DMCdEbqjl8s1kYkPqmX7YGRfgy4aJe2IB+0wZJI2s7ojEGbWtJejL1aL55h+wGDVWTWix47+cAug6kAycjs+LkkjFzku0h6dC3D01KxCmdOLrt7pyQ0+Z/tRXT/eEr0dvL7y6zkrbhPtYVPrOAHKZQ53IyepQMAAAAASUVORK5CYII=" } ] }
Festlegen der Berechtigung, Inhaltstyp in Kopfzeilen. (Berechtigung: Basic xxxxxxxx Inhaltstyp: application / hal + json)
Verwenden Sie die folgende PHP-Locke
Gehen Sie und überprüfen Sie die Datei hier - admin / content / files
quelle
Sie können das REST-UI- Modul installieren, um zu sehen, welche Endpunkte Sie verwenden können.
Außerdem können Sie konfigurieren, welche Ressourcen durch welche Authentifizierung verfügbar gemacht werden.
Bitte beachten Sie, dass die Benutzeroberfläche derzeit die falschen Endpunkte bereitstellt: - REST-URI-Pfade wurden in kanonische Pfade geändert
quelle