My píšeme FE nejčastěji v Angularu (TypeScript), používáme Django REST Framework, pomocí drf-yasg vygenerujeme openapi schéma a z něj naším (opensource) generátorem vygenerujeme celou komunikační vrstvu na FE, čili tímhle netrávíme ani minutu času, v běžných scénářích je vše krásné a otypované (jeden model).
Určitě takovou věc lze najít/mít i pro react/vue. On Tue, 23 Feb 2021, 09:41 Stanislav Vasko, <stanislav.va...@gmail.com> wrote: > Jasně, znám a používám. Běhá to skvěle a jak jsem psal: REST API je v > Django sranda. Ale má-li mít API každý model, má-li API umět doposlat > kontextové informace, pak nějaké přepínače, atd. začne se to nabalovat. > Proto tam “remcám”, že sice to běhá a běhá to skvěle, ale všemu napsat API, > vše ve Vue rozbalit a nandat do správný proměnný a pak teprve psát šablonu > je proti Django response/request časově úplně jinde a u menších aplikací se > mi zdá, že budu více pracovat na API než aplikaci. Snad to píši > srozumitelně :) > > SV > > > On 23 February 2021 at 9:37:15, Jirka Vejrazka (jirka.vejra...@gmail.com) > wrote: > > Ja v tomhle nejsem odbornik, ale REST API jsem kdysi davno v dobe bronzove > delal pomoci https://www.django-rest-framework.org/ - znas? > > Jirka > > On Tue, 23 Feb 2021 at 09:30, Stanislav Vasko <stanislav.va...@gmail.com> > wrote: > >> Díky za přehledné shrnutí. Pere se to ve mě, varianta B je asi ideál, a >> díky tomu, že Vue uvažuji jen jako FE aplikací, nevýhody se SEO mi nevadí. >> >> Co mi žene krev do očí je to API. Ano, REST API v Django je sranda, >> zvláště pak v tutoriálech. Ale reálně… svět je jinde. V contextu či def >> serve() si udělám s daty cokoliv, hlavně pak snadno pořídím kontextové >> informace a ještě v šabloně se dá případně leccos, když je člověk pohodlný. >> Ale co s Vue, pro všechno psát API? Nebo vše neustále balit do JSON a na >> druhé straně rozbalovat? Na velkých projektech s oddělením na BE a FE >> pohoda a dokonce i výhoda, ale u malých projektů zcela mimo, protože s >> programováním komunikace Django <-> Vue bych strávil více času než s >> aplikací samotnou. >> >> Uvidím na té mé aplikaci, buď jsem něco významného přehlédl a lze si >> celou integraci zjednodušit nebo prostě budu muset zůstat u Django + AJAX a >> Vue řešit až po přechodu na zcela jiný BE. >> >> SV >> >> >> On 23 February 2021 at 8:31:43, Martin Kubát (mar.ku...@gmail.com) wrote: >> >> Zdravím, >> ano, volba b) je v poslední době běžná. Je tam mnoho a mnoho problémů, >> ale také to má své výhody: >> >> - čistě FE (vue, angular, react,. ...) je špatně čitelný pro roboty >> (některé), je třeba řešit server-side-rendering (firebase, ...) >> - ano, je třeba objevovat kolo hlavně z pohledu routování url adres >> - většinou je třeba dva lidi/týmy - BE/FE. >> - nutnost udržování dokumentace API >> - FE frameworky mají životnost jepice - od začátku psaní tohoto mailu >> do konce bylo určitě vydáno několik main verzí reactu, angularu, npm a >> javascriptu... >> >> >> >> - znovupoužitelnost BE api je super v tom, že se může připojit jak >> web frontend, tak např. mobilní aplikace, nebo prostě nějaký konzument 3. >> strany. >> - člověk se na BE nemusí starat o html/css a řeší jen databázi, >> performance, rest/graphql ... (vyhovuje teda alespoň mě) >> - na tvorbu microservis je to velmi výhodný koncept. >> - ve větším týmu je krásně řešitelné rozdělení rolí (na fullstack >> nevěřím) >> - front je zpravidla rychlejší, tahá se méně dat. UI/UX je možné >> dotáhnout k dokonalosti. Na druhou stranu to žere mnoho více paměti v >> prohlížeči. >> >> >> Asi bych mohl pokračovat, ale myslím, že základní body jsem napsal. >> >> MK >> >> po 22. 2. 2021 v 21:55 odesílatel Stanislav Vasko < >> stanislav.va...@gmail.com> napsal: >> >>> Zdravím, >>> >>> stále více mi chybí JS ve frontendu. Prošel jsem si co dneska frčí a >>> poměrně jasně jsem si našel Vue jako náplast na moji bolístku. Líbí se mi >>> ta reaktivita a naproti ReactJS má víc té “magie” out-of-the-box. Prostě, >>> nějak k němu inklinuji, tak snad to není špatná volba. >>> >>> Takže, pustil jsem se víc do studia, prošel tutoriály, pročetl nějakou >>> tu knihu a koukl výuková videa. V podstatě jsem našel 2 možnosti integrace: >>> 1. vložit odkaz na Vue.js pro sem-tam využití JS funkce nebo 2. mít ve Vue >>> celý frontend, který je na Django zcela nezávislý. Ta druhá cesta je asi >>> správná, ale trochu mi vadí/děsí, že se vlastně učím celý další framework a >>> naopak všechno “to krásné” z Django je významně zredukováno na něco málo >>> víc než prosté ORM a REST API. Navíc deploy znamená neustále řešit >>> vystavení 2 nezávislých aplikací, které spolu úzce souvisí. >>> >>> Chci se jen ujistit, že ORM s REST API + Vue je běžná cesta a opravdu se >>> to takto používá. Totiž druhá volba mi připadá nepříjemná ve dvou věcech: >>> a) znovuobjevuji kolo, jen místo v Django budu věci dělat ve Vue a >>> b) namísto psaní Django aplikace využiji ORM a pak donekonečna na vše >>> vytvářím REST API konektory a ve Vue je napojuji. >>> >>> Neznám JS backendy, ale možná, co já otrocky vytvářím v Django a ručně >>> napojuji na Vue (a při změně musím ošetřit/opravit na dvou místech >>> nezávisle), bych v JS backendu vyřešil elegantněji? Chci se prostě ujistit, >>> že takto to dělají ostatní a neuniká mi nějaké elegantnější řešení. >>> >>> Díky za tip na lepší řešení či ujištění, že takto je to opravdu správně. >>> Uvítám případně i odkazy na tutoriály či knihy, které Vám s Vue pomohly >>> nebo je můžete doporučit. Bez JS to prostě u mě dál již nepůjde a tak když >>> už, tak pořádně. >>> >>> Hezký večer, Standa >>> >>> -- >>> -- >>> E-mailová skupina django-cs@googlegroups.com >>> Správa: http://groups.google.cz/group/django-cs >>> --- >>> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny >>> „django-cs“ ve Skupinách Google. >>> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, >>> zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com. >>> Chcete-li tuto diskusi zobrazit na webu, navštivte >>> https://groups.google.com/d/msgid/django-cs/CAMD1ck_Bg88W-baXGROKms2LDKyrJOM6E1Kf6dOmcSiQPF7CMQ%40mail.gmail.com >>> <https://groups.google.com/d/msgid/django-cs/CAMD1ck_Bg88W-baXGROKms2LDKyrJOM6E1Kf6dOmcSiQPF7CMQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> -- >> E-mailová skupina django-cs@googlegroups.com >> Správa: http://groups.google.cz/group/django-cs >> --- >> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny >> „django-cs“ ve Skupinách Google. >> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, >> zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com. >> Chcete-li tuto diskusi zobrazit na webu, navštivte >> https://groups.google.com/d/msgid/django-cs/CA%2BL8erbVf-bcvHT6m3fuFN073bL%2Bd_yFLFGCEXHxJYxaWGSAGg%40mail.gmail.com >> <https://groups.google.com/d/msgid/django-cs/CA%2BL8erbVf-bcvHT6m3fuFN073bL%2Bd_yFLFGCEXHxJYxaWGSAGg%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> -- >> -- >> E-mailová skupina django-cs@googlegroups.com >> Správa: http://groups.google.cz/group/django-cs >> --- >> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny >> „django-cs“ ve Skupinách Google. >> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, >> zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com. >> Chcete-li tuto diskusi zobrazit na webu, navštivte >> https://groups.google.com/d/msgid/django-cs/CAMD1ck98xeFwf74EQqTjXNG9gJ9zmZJMBZDazMsh85AmpjyWZw%40mail.gmail.com >> <https://groups.google.com/d/msgid/django-cs/CAMD1ck98xeFwf74EQqTjXNG9gJ9zmZJMBZDazMsh85AmpjyWZw%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > -- > E-mailová skupina django-cs@googlegroups.com > Správa: http://groups.google.cz/group/django-cs > --- > Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny > „django-cs“ ve Skupinách Google. > Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, > zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com. > Chcete-li tuto diskusi zobrazit na webu, navštivte > https://groups.google.com/d/msgid/django-cs/CAFhEBECoVPmVyYX8b%3D2QxO3Gw7_ee_-y6nu7OiCbW%2B9Pw-jz1A%40mail.gmail.com > <https://groups.google.com/d/msgid/django-cs/CAFhEBECoVPmVyYX8b%3D2QxO3Gw7_ee_-y6nu7OiCbW%2B9Pw-jz1A%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > -- > -- > E-mailová skupina django-cs@googlegroups.com > Správa: http://groups.google.cz/group/django-cs > --- > Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny > „django-cs“ ve Skupinách Google. > Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, > zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com. > Chcete-li tuto diskusi zobrazit na webu, navštivte > https://groups.google.com/d/msgid/django-cs/CAMD1ck-PqaSB6vmEmcVTA8WOvfeYgMFaY0r8BhQqEOGY6iRGyw%40mail.gmail.com > <https://groups.google.com/d/msgid/django-cs/CAMD1ck-PqaSB6vmEmcVTA8WOvfeYgMFaY0r8BhQqEOGY6iRGyw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- -- E-mailová skupina django-cs@googlegroups.com Správa: http://groups.google.cz/group/django-cs --- Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google. Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com. Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/CAK-vJU%3DYbBULaHzREQ%2BBa-a1MLcUK%2BOsNYRP-K4gp8RA2fWEQQ%40mail.gmail.com.