Saya dapat membuat artikel melalui REST
tanpa masalah. Tapi saya tidak tahu bagaimana cara mengirim file.
Bagaimana cara mengirim file (gambar) ke Drupal 8 via REST
?
Memperbarui:
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"
Posting gambar (tanpa konten entitas):
curl --request POST --user admin:admin --header 'Content-type: application/hal+json' http://d8.local/entity/file
{"error":"No entity content received."}
Saya tidak dapat menemukan cara membuat entity content
.
Jawaban:
drush dl restui-8.x-1.x
/entity/file/{file}
POST ke drupal.url / entitas / file /
sumber
EntityResource.php
berdasarkan patch dan jalur 117 Anda, saya mengembalikan ID entitas dan sekarang saya setidaknya memiliki referensi seperti itu:$response = new ResourceResponse(NULL, 201,['id' => $entity->id()]);
$entity->id()
respons. Saya meneruskan id entitas ke simpul dan sekarang simpul itu tahu tentang gambarfile_managed
tabel Drupal . Baris ini memiliki keunikanfid
. Saya percaya langkah selanjutnya adalah POST pembuatan node baru dengan bidang gambar dan gunakanfid
untuk mengaitkan bidang gambar dengan file. Jika saya mengerti Anda, pertanyaannya adalah bagaimana menentukanfid
kapan tidak ada yang dikembalikan. Saya perhatikan dari utas Drupal hari ini bahwa versi masa depan REST UI akan mengembalikan entitas penuh, tapi saya tidak yakin bagaimana menyelesaikan masalah ini untuk saat ini.Berikut format data pos (gunakan encoder base64 untuk data gambar)
{ "_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=" } ] }
Set Otorisasi, Content-Type in header. (Otorisasi: Basic xxxxxxxx Content-Type: application / hal + json)
Gunakan php curl berikut
Buka dan periksa file di sini - admin / konten / file
sumber
Anda dapat menginstal modul UI REST untuk melihat titik akhir apa yang dapat Anda gunakan.
Karena juga memungkinkan Anda mengkonfigurasi sumber daya apa yang terpapar oleh otentikasi apa.
Harap perhatikan bahwa UI saat ini memberikan titik akhir yang salah: - REST jalur URI berubah menjadi jalur kanonik
sumber