logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll
21/05/2025, by Ivan

Otpremanje fajlova je sada podržano, pogledajte napomene o izdanju za više informacija: https://www.drupal.org/node/3024331

Ove dve slike pokazuju kako koristiti Postman za testiranje otpremanja fajlova putem JSON:API

Json API File header
Json:API zaglavlja u Postman-u.

Primer sa curl-om za otpremanje slike korisnika

Ovo podrazumeva da ste se prethodno autentifikovali i preuzeli CSRF token u drugom zahtevu.

curl -s -X POST -b cookie.txt \
  --header "Accept: application/vnd.api+json" \
  --header "Content-Type: application/octet-stream" \
  --header "X-CSRF-Token: $TOKEN" \
  --header 'Content-Disposition: file; filename="test.jpg"' \
  --data-binary "@test.jpg" \
  http://localhost/jsonapi/user/user/$UUID/user_picture

Saveti kada koristite axios (ili druge http klijentske biblioteke) i Node.js:

Može se desiti da je format slike koji treba da pošaljete u Buffer formatu. Na primer:

<Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff fe 00 3e 43 52 45 41 54 4f 52 3a 20 67 64 2d 6a 70 65 67 20 76 31 2e 30 20 28 75 73 69 ... 582549 more bytes>

Iako je ovo zapravo Buffer objekat sa binarnim podacima slike, ako pokušate da ovo pošaljete kao data parametar pomoću omiljene http klijentske biblioteke, kao što je axios, dobićete neispravan fajl. Fajl će postojati i dobićete uspešan odgovor, ali slika će verovatno biti samo beli kvadrat na crnoj pozadini.

Morate koristiti Node.js Buffer klasu da konvertujete podatke u pravi binarni format. Tačnije, koristićete from metodu.

Na primer:

Pretpostavimo da ste preuzeli fajl pomoću AWS S3 SDK i dobili Body tog fajla. Taj Body će sadržati Buffer podatke kao što je prikazano iznad. Postavite Body podatke u promenljivu, koristite Buffer klasu da ih pravilno formatirate i pošaljite na Drupal JSON:API endpoint pomoću axios-a (napomena: ovaj snippet je samo ključni deo koda, ne ceo handler. Takođe, često ovo odvojimo u helper biblioteke zbog DRY pristupa). Najvažnija linija je data: Buffer.from(buffer, "binary"):

const buffer = storedFile.Body; // sadrži Buffer podatke kao iznad.

const drupalData = await axios({
  method: "post",
  url: url, // URL ka /jsonapi/media/image/field_media_image/ na vašem sajtu.
  auth: {
  	username: xxx,
  	password: xxx
  },
  headers: {
    'Accept': 'application/vnd.api+json',
    'Content-Type': 'application/octet-stream',
    'X-CSRF-Token': token, // Prvo preuzmite token sa /session/token!
    'Content-Disposition': 'file; filename="' + filename + '"',
  },
  data: Buffer.from(buffer, "binary"),

});

console.log(drupalData); // uuid novokreiranog fajla se nalazi u drupalData.data.id

Ovo je posebno korisno ako koristite Node.js AWS Lambda funkcije i preuzimate fajlove iz S3 koje zatim šaljete na Drupal.