Discussion:
[python-nl] rest-toolkit release
Wichert Akkerman
2014-07-13 16:48:28 UTC
Permalink
Op de laatste PUN heb ik kort wat vertelt over een REST library waar ik mee bezig was. Bij deze even een korte update: ondertussen heb ik een paar releases gemaakt, en volgende week gaat de eerste site die rest_toolkit gebruikt in productie. De documentatie is (nog steeds) te vinden op http://rest-toolkit.rtfd.orgt/ . In de source (https://github.com/wichert/rest_toolkit/tree/master/demos ) zitten een paar voorbeelden die laten zien hoe je AngularJS met rest-toolkit kan gebruiken.

Gr,
Wichert.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-nl/attachments/20140713/df085edf/attachment.html>
Martijn Faassen
2014-07-14 09:42:44 UTC
Permalink
Hoi,

Parallele evolutie!

rest-toolkit lijkt nogal op Morepath; route naar models met dan views
erop. Doet het nog iets aan link generatie, zoals Morepath?

Regards,

Martijn
Post by Wichert Akkerman
Op de laatste PUN heb ik kort wat vertelt over een REST library waar ik mee
bezig was. Bij deze even een korte update: ondertussen heb ik een paar
releases gemaakt, en volgende week gaat de eerste site die rest_toolkit
gebruikt in productie. De documentatie is (nog steeds) te vinden op
http://rest-toolkit.rtfd.orgt/ . In de source
(https://github.com/wichert/rest_toolkit/tree/master/demos ) zitten een paar
voorbeelden die laten zien hoe je AngularJS met rest-toolkit kan gebruiken.
Gr,
Wichert.
_______________________________________________
Python-nl mailing list
Python-nl at python.org
https://mail.python.org/mailman/listinfo/python-nl
Wichert Akkerman
2014-07-14 09:48:14 UTC
Permalink
Post by Martijn Faassen
Hoi,
Parallele evolutie!
rest-toolkit lijkt nogal op Morepath; route naar models met dan views
erop. Doet het nog iets aan link generatie, zoals Morepath?
Het concept van routes naar models met views erop is niet nieuw; pyramid doet dat bijvoorbeeld ook al. Het voornaamste dat rest-toolkit extra doet is een klein ?opinionated? laagje daar overheen gieten om het makkelijk te maken om REST services te implementeren. link-generatie doet pyramid dat zelf al uitstekend, dus daar hoef ik niks voor te doen. Het enige dat mogelijk ontbreekt is een stukje documentatie over de namen van de routes die rest-toolkit intern genereert zodat je die zelf aan request.route_url() kan geven. In de praktijk merk ik echter dat het vaak net zo makkelijk is om routes zelf direct uit te schrijven.

Wichert.
Martijn Faassen
2014-07-14 10:24:30 UTC
Permalink
Hoi,

Ik beweer niet dat Morepath of Rest-toolkit nieuw zijn, alleen dat
dezelfde ideeen rondspoken. Routing naar models bijvoorbeeld, zoals je
bij traversal al hebt. Daarom noem ik dat parallele evolutie.

Pyramid doet toch alleen traversal naar models met views erop? Routes
gaan in Pyramid toch direct naar views? Voegt rest-toolkit dan niet
routing naar models toe?

De meeste web frameworks denken dat een route naam met een manier om
via de naam een link te genererenn goed genoeg is voor link generatie.
Ik denk daar nogal anders over. Morepath associeert routes met model
classes zodat om een link naar een model instance kan vragen. Zoals
bij traversal. Als je met route namen gaat werken dan kun je de routes
net inderdaad vaak net zo goed uitspellen. Het is misschien mogelijk
om aan rest-toolkit zo'n faciliteit toe te voegen, omdat je ook de
model classes kent waarnaar geroute wordt.

Groeten,

Martijn
Wichert Akkerman
2014-07-14 10:32:38 UTC
Permalink
Post by Martijn Faassen
Hoi,
Ik beweer niet dat Morepath of Rest-toolkit nieuw zijn, alleen dat
dezelfde ideeen rondspoken. Routing naar models bijvoorbeeld, zoals je
bij traversal al hebt. Daarom noem ik dat parallele evolutie.
Ah, ok. In dat geval klopt je beeld van Pyramid niet helemaal :)
Post by Martijn Faassen
Pyramid doet toch alleen traversal naar models met views erop? Routes
gaan in Pyramid toch direct naar views? Voegt rest-toolkit dan niet
routing naar models toe?
Pyramid, en repoze.bfg daarvoor, heeft altijd al twee publicatie modellen gehad: traversal zoals Zope dat kent, en het meer bekende URL dispatch waarbij je grofweg een URL via een regexp matched met een route. Een route heeft dan weer een context factory die je de context geeft, en bij de route of route+context kan je dan views registeren. Je kan zelfs helemaal los gaan en ze combineren. rest-toolkit bouwt op dat systeem voort, maar introduceert het dus niet zelf.
Post by Martijn Faassen
De meeste web frameworks denken dat een route naam met een manier om
via de naam een link te genererenn goed genoeg is voor link generatie.
Ik denk daar nogal anders over. Morepath associeert routes met model
classes zodat om een link naar een model instance kan vragen.
Dat is wel anders, en heeft een redelijk belangrijk minpunt: je forceert een 1-op-1 mapping tussen models en URLs, terwijl het niet ongebruikelijk is om hetzelfde model voor meerdere URLs te gebruiken.
Post by Martijn Faassen
Zoals
bij traversal. Als je met route namen gaat werken dan kun je de routes
net inderdaad vaak net zo goed uitspellen. Het is misschien mogelijk
om aan rest-toolkit zo'n faciliteit toe te voegen, omdat je ook de
model classes kent waarnaar geroute wordt.
Ik zal nooit models rechtstreeks aan URLs linken omdat ik dat als een anti-pattern zie, maar het is natuurlijk vrij makkelijk voor iemand om dat bovenop rest-toolkit te doen.

Wichert.
Martijn Faassen
2014-07-14 11:32:53 UTC
Permalink
Hoi,
Post by Wichert Akkerman
Post by Martijn Faassen
Pyramid doet toch alleen traversal naar models met views erop? Routes
gaan in Pyramid toch direct naar views? Voegt rest-toolkit dan niet
routing naar models toe?
Pyramid, en repoze.bfg daarvoor, heeft altijd al twee publicatie modellen gehad: traversal zoals Zope dat
kent, en het meer bekende URL dispatch waarbij je grofweg een URL via een regexp matched met een route.
Een route heeft dan weer een context factory die je de context geeft, en bij de route of route+context kan je
dan views registeren. Je kan zelfs helemaal los gaan en ze combineren.
Het context verhaal heb ik wel eens gelezen. Het lijkt me dat dit toch
ietwat anders is dan een view lookup op de context zoals bij
traversal. Het is meer een manier om een view van een context te
voorzien. Hoewel het registreren van een view op "route+context" dan
weer wel daarop lijkt. Dat heb ik in de docs nog niet teruggevonden.

Echt routen naar models valt natuurlijk te bouwen in Pyramid -- het is
een erg flexibel ding. Er staat dan een wel waarschuwingsteken in de
handleiding bij het combineren van traversal en routing. :)
Post by Wichert Akkerman
rest-toolkit bouwt op dat systeem voort, maar introduceert het dus niet zelf.
Pyramid heeft een filosofie van geen policy, dus dan is het handig als
er een laagje komt wat het een en andere duidelijker maakt. Het
"routing to models" valt veel meer op in rest-toolkit.
Post by Wichert Akkerman
Post by Martijn Faassen
De meeste web frameworks denken dat een route naam met een manier om
via de naam een link te genererenn goed genoeg is voor link generatie.
Ik denk daar nogal anders over. Morepath associeert routes met model
classes zodat om een link naar een model instance kan vragen.
Dat is wel anders, en heeft een redelijk belangrijk minpunt: je forceert een 1-op-1 mapping tussen models en
URLs, terwijl het niet ongebruikelijk is om hetzelfde model voor meerdere URLs te gebruiken.
Ja, da's een beperking. Maar ik denk meestal een goede: waarom laat je
het model nu op meerdere plekken terugkomen als je gewoon een link kan
maken? De voordelen zijn natuurlijk dat je zonder nadenken en opzoeken
van een route naam kunt linken. Maar er zijn natuurlijk tradeoffs.

Maar je kunt in Morepath overigens ook dezelfde model class op
meerdere plekken gebruiken, als het maar in een andere applicatie is
(in dezelfde runtime).
Post by Wichert Akkerman
Ik zal nooit models rechtstreeks aan URLs linken omdat ik dat als een anti-pattern zie, maar het is natuurlijk
vrij makkelijk voor iemand om dat bovenop rest-toolkit te doen.
Het concrete patroon in rest toolkit lijkt op dat van Morepath.

Je hebt in rest-toolkit resources. Die hebben een pad via een route.
Je hebt views die je aan resources hangt. Je kunt met SQLResource
blijkbaar een SQLAlchemy object als context in de view gebruiken ipv
de resource zelf, maar hoe dat precies gaat is me niet helemaal
duidelijk.

In Morepath doe je wat jij met resources doet met models. Die kunnen
of uit een database komen, of ze kunnen applicatie-specifiek zijn
(collecties meestal), dat kan Morepath niets schelen. De applicatie
specifieke models kunnen dan weer queries doen, zoals jij doet in
resources. Verschil is dat een model geen request heeft zoals
resources - dat wordt altijd in een Morepath view afgehandeld, en
models weten niks van het web. Ander verschil: het ophalen van models
vanuit de route in Morepath gaat via een functie die een query kan
doen of een applicatie-specifieke model instance kan maken, of wat dan
ook.

Maar hoewel er verschillen zijn in de aanpak lijken de concrete
patronen erg op elkaar. Waar ik met een applicatie-model aankom voor
de gevallen waar een database-backed model niet genoeg is, doe jij dat
per default met resources, maar heb je een SQLResource om het
database-backed model gebeuren gemakkelijker te maken.

Ik zal de onconstructieve opmerking zonder verklaring over anti
patterns verder maar negeren, want ik kan niet zien wat je bedoelt en
er dus ook geen weerwoord op geven.

Groeten,

Martijn
Wichert Akkerman
2014-07-15 08:28:59 UTC
Permalink
Post by Martijn Faassen
Hoi,
Post by Wichert Akkerman
Post by Martijn Faassen
Pyramid doet toch alleen traversal naar models met views erop? Routes
gaan in Pyramid toch direct naar views? Voegt rest-toolkit dan niet
routing naar models toe?
Pyramid, en repoze.bfg daarvoor, heeft altijd al twee publicatie modellen gehad: traversal zoals Zope dat
kent, en het meer bekende URL dispatch waarbij je grofweg een URL via een regexp matched met een route.
Een route heeft dan weer een context factory die je de context geeft, en bij de route of route+context kan je
dan views registeren. Je kan zelfs helemaal los gaan en ze combineren.
Het context verhaal heb ik wel eens gelezen. Het lijkt me dat dit toch
ietwat anders is dan een view lookup op de context zoals bij
traversal. Het is meer een manier om een view van een context te
voorzien. Hoewel het registreren van een view op "route+context" dan
weer wel daarop lijkt. Dat heb ik in de docs nog niet teruggevonden.
Dat werkt vrij exact zoals je zou verwachten:

@view_config(route_name=?my-route?, context=MyModel)
def my_view(context, request):
pass
Post by Martijn Faassen
Echt routen naar models valt natuurlijk te bouwen in Pyramid -- het is
een erg flexibel ding. Er staat dan een wel waarschuwingsteken in de
handleiding bij het combineren van traversal en routing. :)
In de praktijk blijkt dat mensen traversal al moeilijk snappen, en de combinatie van dispatch+traversal al helemaal een brug te ver is. Vandaar dat de focus in de pyramid documentatie in verloop van tijd ook sterk van traversal naar dispatch is verandert.
Post by Martijn Faassen
Post by Wichert Akkerman
rest-toolkit bouwt op dat systeem voort, maar introduceert het dus niet zelf.
Pyramid heeft een filosofie van geen policy, dus dan is het handig als
er een laagje komt wat het een en andere duidelijker maakt. Het
"routing to models" valt veel meer op in rest-toolkit.
Post by Wichert Akkerman
Post by Martijn Faassen
De meeste web frameworks denken dat een route naam met een manier om
via de naam een link te genererenn goed genoeg is voor link generatie.
Ik denk daar nogal anders over. Morepath associeert routes met model
classes zodat om een link naar een model instance kan vragen.
Dat is wel anders, en heeft een redelijk belangrijk minpunt: je forceert een 1-op-1 mapping tussen models en
URLs, terwijl het niet ongebruikelijk is om hetzelfde model voor meerdere URLs te gebruiken.
Ja, da's een beperking. Maar ik denk meestal een goede: waarom laat je
het model nu op meerdere plekken terugkomen als je gewoon een link kan
maken? De voordelen zijn natuurlijk dat je zonder nadenken en opzoeken
van een route naam kunt linken. Maar er zijn natuurlijk tradeoffs.
Omdat je vaak heel verschillende dingen met hetzelfde model wil doen. Bijvoorbeeld:

een account object als context gebruiken voor een instellingen-formulier en een profiel-pagina
evenement gegevens tonen in een admin-context voor organisatoren versus een evenement tonen in een publieke kalender
een edit-scherm versus een view van hetzelfde object

In een hele pure REST-context gaat dat niet op omdat REST voorschrijft dat een resource uniek wordt ge?dentificeerd door een URL. In de praktijk geeft dat echter veel duplicatie en wil je snel hetzelfde model op meerdere plekken gebruiken. Vandaar dat ik die harde koppeling tussen URL en model niet als een nuttig patroon zien.
Post by Martijn Faassen
Maar je kunt in Morepath overigens ook dezelfde model class op
meerdere plekken gebruiken, als het maar in een andere applicatie is
(in dezelfde runtime).
Post by Wichert Akkerman
Ik zal nooit models rechtstreeks aan URLs linken omdat ik dat als een anti-pattern zie, maar het is natuurlijk
vrij makkelijk voor iemand om dat bovenop rest-toolkit te doen.
Het concrete patroon in rest toolkit lijkt op dat van Morepath.
Je hebt in rest-toolkit resources. Die hebben een pad via een route.
Je hebt views die je aan resources hangt. Je kunt met SQLResource
blijkbaar een SQLAlchemy object als context in de view gebruiken ipv
de resource zelf, maar hoe dat precies gaat is me niet helemaal
duidelijk.
Niet direct. Er is een SQLResource die je als context aan een view hangt. Die resource heeft een SQL query om iets uit SQL te halen, wat gebruikt wordt als een attribuut in die resource. Als er niks word gevonden gooit de SQLResource constructor een exception. Het SQLAlchemy object is daarmee dus niet direct zelf de context. Dat zou je wel kunnen doen, maar dan moet je al snel view-logica aan je model toevoegen en persoonlijk hou ik daar minder van.

Bedankt voor die feedback trouwens; blijkbaar heeft de documentatie van SQLResource meer aandacht nodig.
Post by Martijn Faassen
In Morepath doe je wat jij met resources doet met models. Die kunnen
of uit een database komen, of ze kunnen applicatie-specifiek zijn
(collecties meestal), dat kan Morepath niets schelen. De applicatie
specifieke models kunnen dan weer queries doen, zoals jij doet in
resources. Verschil is dat een model geen request heeft zoals
resources - dat wordt altijd in een Morepath view afgehandeld, en
models weten niks van het web. Ander verschil: het ophalen van models
vanuit de route in Morepath gaat via een functie die een query kan
doen of een applicatie-specifieke model instance kan maken, of wat dan
ook.
Het lijkt vooral een kwestie van terminologie te zijn. Ik gebruik de term model eigenlijk helemaal niet in rest-toolkit. Hij komt alleen voor in stukken documentatie waar een SQL model wordt gebruikt. Ik gebruik verder de term resource omdat die aansluit bij de REST, URL en Pyramid terminologie. Waar ik de term resource gebruik lijkt morepath de term model te gebruiken.

Gr,
Wichert.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-nl/attachments/20140715/26b945c9/attachment-0001.html>
Martijn Faassen
2014-07-15 11:36:33 UTC
Permalink
Hoi,
Post by Wichert Akkerman
een account object als context gebruiken voor een instellingen-formulier en
een profiel-pagina
Als je echt verschillend gebruik hebt kun je een applicatie-specifiek
model maken dat de database account wrapped voor tenminste een van de
gevallen - dan krijg je iets wat op jouw resources lijkt, met als het
verschil dat het een model is, dus zonder kennis
van de request en alleen het applicatie domein.

Maar voor simpele gevallen volstaan een aantal views op het account
object. In een rich client side applicatie zou ik eerder zoiets
verwachten dan "instellingen" en "profiel" op hele andere server side
URLs plaatsen (zoals je zelf ook zegt over een hele pure REST
context). En dan kun je in Morepath nog twee applicaties maken; een
instellingen app en een profile app, en daarin het account object een
andere pad geven.
Post by Wichert Akkerman
evenement gegevens tonen in een admin-context voor organisatoren versus een
evenement tonen in een publieke kalender
Klinkt als twee applicaties.
Post by Wichert Akkerman
een edit-scherm versus een view van hetzelfde object
Dat klinkt als twee views.
Post by Wichert Akkerman
Post by Martijn Faassen
Je kunt met SQLResource
blijkbaar een SQLAlchemy object als context in de view gebruiken ipv
de resource zelf, maar hoe dat precies gaat is me niet helemaal
duidelijk.
Niet direct. Er is een SQLResource die je als context aan een view hangt.
Die resource heeft een SQL query om iets uit SQL te halen, wat gebruikt
wordt als een attribuut in die resource. Als er niks word gevonden gooit de
SQLResource constructor een exception. Het SQLAlchemy object is daarmee dus
niet direct zelf de context.
Hoe praat de view dan met het SQLAlchemy object? show_user krijgt een
'user' object waaruit het attributen haalt. Is een SQLResource die een
soort proxy is voor het echte SQLAlchemy object?

In Morepath, als er niks gevonden wordt, geeft de "get model" functie
een None terug en krijg je een 404.
Post by Wichert Akkerman
Dat zou je wel kunnen doen, maar dan moet je al
snel view-logica aan je model toevoegen en persoonlijk hou ik daar minder
van.
Dat snap ik niet helemaal; waarom zou er view logica aan het model
moeten worden toegevoegd?

Collection models zijn een apart geval; ze zitten niet in de database,
en je krijgt al snel een 'add' method en wat search en filtering
faciliteiten om queries te doen. Maar dat zijn dan ook models die je
zelf kunt schrijven, en ze krijgen geen request, dus ook
geen view logica.
Post by Wichert Akkerman
Bedankt voor die feedback trouwens; blijkbaar heeft de documentatie van
SQLResource meer aandacht nodig.
Geen probleem. Het is voor mij ook interessant om de verschillende
subtiel verschillende manieren om applicaties te organiseren naast
elkaar te leggen.
Post by Wichert Akkerman
Het lijkt vooral een kwestie van terminologie te zijn. Ik gebruik de term
model eigenlijk helemaal niet in rest-toolkit. Hij komt alleen voor in
stukken documentatie waar een SQL model wordt gebruikt. Ik gebruik verder de
term resource omdat die aansluit bij de REST, URL en Pyramid terminologie.
Waar ik de term resource gebruik lijkt morepath de term model te gebruiken.
Ze vervullen soms dezelfde rol, maar er is een wezelijk verschil. Jouw
resources krijgen de request. In Morepath gebeurt dat nooit - ze
krijgen de informatie pas als deze uit de request is gehaald door de
views of door routing.

Oorspronkelijk heetten de *views* in Morepath "resource", goed dat ik
dat heb veranderd. :)

Groeten,

Martijn
Marcel van den Elst
2014-07-15 08:23:56 UTC
Permalink
Post by Martijn Faassen
Post by Wichert Akkerman
Post by Martijn Faassen
De meeste web frameworks denken dat een route naam met een manier om
via de naam een link te genererenn goed genoeg is voor link generatie.
Ik denk daar nogal anders over. Morepath associeert routes met model
classes zodat om een link naar een model instance kan vragen.
Dat is wel anders, en heeft een redelijk belangrijk minpunt: je forceert een 1-op-1 mapping tussen models en
URLs, terwijl het niet ongebruikelijk is om hetzelfde model voor meerdere URLs te gebruiken.
Ja, da's een beperking. Maar ik denk meestal een goede: waarom laat je
het model nu op meerdere plekken terugkomen als je gewoon een link kan
maken? De voordelen zijn natuurlijk dat je zonder nadenken en opzoeken
van een route naam kunt linken. Maar er zijn natuurlijk tradeoffs.
Models hard aan URLs koppelen koppelen lijkt mij ook een anti-pattern.
Een paar redenen waarom het een anti-pattern is (NB: dit is constructief
Martijn!) is dat je het volgende verliest:

# meerdere endpoints voor zelfde model.

Een simpel voorbeeld daarvan is dat je een PersonModel hebt in de
backend, die ontsloten wordt via een ClientResource, UserResource en
EmployeeResource.

# wijzigen backend terwijl gepubliceerde API gelijk blijft.

Wanneer jij zelf de enige consumer van je API bent is dit misschien
minder kritisch, maar als derden gebruik maken van je API wil jij niet
dat als jij besluit of genoodzaakt bent om de backend anders in te
richten, dat alle clients (die jij niet eens hoeft te kennen) hun API
/moeten/ updaten (of dat jij dus je backend niet kunt aanpassen).

# versioning van de API.

En het omgekeerde geval: als je backend gelijkt blijft maar je besloten
hebt om de API te veranderen, wil je niet een tweede backend ernaast
hoeven zetten.
Martijn Faassen
2014-07-15 11:56:58 UTC
Permalink
Hoi,
Post by Marcel van den Elst
Models hard aan URLs koppelen koppelen lijkt mij ook een anti-pattern.
Een paar redenen waarom het een anti-pattern is (NB: dit is constructief
Ja, deze discussie helpt mij om te zien wat mensen als bezwaren tegen
Morepath zouden kunnen inbrengen, maar er zijn een paar features in
Morepath die veel van de genoemde problemen helemaal anders kunnen
oplossen -- meerdere apps bijvoorbeeld, zoals we hieronder zien.
Post by Marcel van den Elst
# meerdere endpoints voor zelfde model.
Een simpel voorbeeld daarvan is dat je een PersonModel hebt in de backend,
die ontsloten wordt via een ClientResource, UserResource en
EmployeeResource.
Je kunt dit in Morepath op verschillende manieren doen:

* PersonModel met client view, user view, en employee view.
foo_user/client foo_user/user foo_user/employee. Dat zou mijn eerdere
keuze zijn -- models zijn alleen maar een endpoint als ze een view
hebben. Een van die views is de 'default view', de view als je geen
extra /view_name achter de URL plaatst.

* Drie apps, client, user en employee, met daarin helemaal andere
routes, wat je maar wilt. Dus bijv employees/foo_user,
clients/foo_user. Je kunt apps ook in andere apps mounten voor apps
die context nodig hebben.

* een Person model, en dan een ClientPerson, UserPerson en
EmployeePerson. Dit als je erachter komt dat je APIs wezelijk anders
zijn bij het gebruik van Person, en er dus op model niveau eigenlijk
drie models zijn, met hele andere paden. Als dit het geval is kun je
ook tests schrijven zonder over web dingen na te denken.
Post by Marcel van den Elst
# wijzigen backend terwijl gepubliceerde API gelijk blijft.
Wanneer jij zelf de enige consumer van je API bent is dit misschien minder
kritisch, maar als derden gebruik maken van je API wil jij niet dat als jij
besluit of genoodzaakt bent om de backend anders in te richten, dat alle
clients (die jij niet eens hoeft te kennen) hun API /moeten/ updaten (of dat
jij dus je backend niet kunt aanpassen).
Natuurlijk is het wijzigen van de code zonder dat de API verandert een
use case. Maar ik zie dat probleem helemaal niet.

Je kunt met de routes gewoon andere models op dezelfde paden zetten.
Je zult de views natuurlijk ook moeten aanpassen.

Je *zou* kunnen beargumenteren dat je met intermediate objecten zoals
resources je views helemaal kunt afschermen van wijzigingen in models,
maar concreet doe je dat toch meestal niet (je hebt bijvoorbeeld
queries in de views). En als je dat wilt doen kun je dat op de model
laag ook doen, en dan heb je het voordeel dat je zo'n facade kan
opbouwen puur op model niveau.
Post by Marcel van den Elst
# versioning van de API.
... als je backend gelijkt blijft maar je besloten hebt
Dat is in Morepath goed geregeld; je mount gewoon per API versie een
andere app. Die apps zijn van elkaar geisoleerd, tenzij je expliciet
dingen deelt door ze van elkaar te laten inheriten, of expliciet een
link maakt naar iets in een andere app (of een view hergebruikt).
Post by Marcel van den Elst
En het omgekeerde geval: als je backend gelijkt blijft maar je besloten hebt om de API te veranderen, wil je niet een tweede
backend ernaast hoeven zetten.
Dan verander je toch gewoon de routes? En wat de views doen
natuurlijk. Omdat Morepath automatisch links maakt werken zelfs je
links nog daarna.

Dit soort bezwaren weegt sterker als je aan traversal naar models doet
- de structuur van de models bepaalt de structuur van de URLs. Dan
zijn veel van deze dingen inderdaad lastiger. Maar routing naar models
heeft hele andere eigenschappen.

Groeten,

Martijn

Loading...