REST API Resource (post & get)


#1

Ahojte,

momentalne pracujem na vyvoji custom modulu, ktory ma sluzit ako REST Resouce. Aktualne pouzivam Controller, na ktoreho funkcie sa odkazuje module.routing.yml. Controller spracuva aj GET aj POST requesty a odpoveda na ne.

Dopatral som sa ale k ResourceBase, pomocou ktorej sa da vytvorit Plugin, ktory by GET aj POST spracoval takisto + zaroven by vedel autentifikovat pouzivatelov. Otazka je, ci je implementacia REST API Resouce pomocou Controlleru korektna, alebo je vhodnejsie pouzit Plugin extendnuty o ResourceBase? Nebude potom mapovanie resourcou 1:1 ? Tym myslim, jeden plugin (rozumej class) bude riesit len jeden resource? Potrebujem totizto spravit niekolko takychto endpointov, ktore budu poskytovat inym systemom udaje z drupalu.

Pri controllery riesi spracovanie samotny controller a samotna funkcia (napr. getUsers, getPosts, createPost …). Ale zatial neriesim autentifikaciu pouzivatelov. + Ak mi viete poradit ako efektivne autentifikovat pouzivatelov dopytujucich sa po contente v drupale, budem vdacny. :slight_smile:


#2

Ahoj, my sme sa tym tiez chvilu zaoberali. Teoreticky by to malo byt cez Plugin trochu rychlejsie ale nemame ziadne meranie. Tie co su default v Drupale ti nevyhovuju? Lebo getUsers, getPosts, createPost vyzera dost genericky, pripadne spravitelne cez views. Pripadne by si sa mohol pozriet na JSON:API, ktore je od 8.7.0-alpha2 v jadre.


#3

Ahoj. Chcel som to riesit custom mimo JSON:API, REST UI a podobnych modulov. Pretoze potrebujem riesit aj autentifikaciu pouzivatelov a komplexnejsie operacie a spracovanie dat na strane drupalu, nie len ich vytiahnutie a zobrazovanie (a ine simple use case-y).

Mam vytvorenu rolu, ktore ma urcite permissions na zaklade ktorych by mala pristupit k danej funkcii controllera. Ale ocividne, ked poslem POST request z Postmana, ktory obsahuje autentifikacne udaje usera + jeho token, tak drupal ma nepusti k danemu resource na tej route. Cerpal som z LINK. Drupal sice zaloguje to, ze mojho usera pozna (toho ktoreho posielam v requeste), ale odmietne ho pustit na danu route. S niecim podobnym skusenost, prosim ta nemas?


#4

Nemam s takym problemom skusenosti, odporucam rozbehat xdebug :slight_smile: