Ahoj,programuji jednoduchou CRUD aplikaci, a v podstate poprve se to snazime udelat tak aby to byl REST interface, narazil jsem ale na par problemu v navrhu.
Predstavme si ze mame table Users a table Posts (fk=user.id). z takovyho schemata mi vyplynuly nasledujici controllery (jsou hodne granularni) v ramci takovych routes.
get_user_controller - "GET xxx/users/:userid"
post_user_controller - "POST xxx/users/:userid"
put_user_controller - "PUT xxx/users/:userid"
delete_user_controller - "DELETE xxx/users/:userid"
get_post_controller - "GET xxx/posts/:postid"
post_post_controller - "POST xxx/posts/:postid"
put_post_controller - "PUT xxx/posts/:postid"
delete_post_controller - "DELETE xxx/posts/:postid"
potud se to zda pekny a fajn (valna vetsina tutorialu na netu to nejak takhle prezentuje), JENZE nasleduje tahle vec - chcete udelat one-to-many relation ve smyslu users-post (pac posty maj fk k userum) - routes jsou jeste rekneme v poradku (snad?)
"GET xxx/users/:userid/posts/:postid"
"POST xxx/users/:userid/posts/:postid"
"PUT xxx/users/:userid/posts/:postid"
"DELETE xxx/users/:userid/posts/:postid"
JENZE nasleduje ten velky problem - jak na controllery? opravdu bych mel spravne napsat sadu 4 novych controlleru? neporusuje to dry, nemel bych spis mit mene controlleru a parametrizovat je vice? Co kdyz budu chtit pridat dalsi table? dalsi 4 controllery?
A ted to nejhorsi, co kdyz muj user table ma 6 one-to-many relations napriklad s tably - comments, books, movies, posts, friends, etc - musim pro kazdou takovou resource udelat 4, opakuji 4 nove controllery? to bych potom na na ten user table s 6fk tably, mel panecku 24 controlleru a 24 novych routes - neni to proboha priserne moc? neni problem to udelat ale zda se mi ze takove reseni neskaluje a co je nejhorsi v zadnym tutorialu co jsem videl okolo RESTu, i po googleni na stack overflow, nebylo vysvetelene jak tohle spravne a modularne udelat pri relacich one-to-many a many-to-many.
Chapu rest spravne? Je mozne ze to delam od zakladu blbe.
Diky za jakekoliv rady, jsem totalni novacek.