Re: Question about generating urls with dispatch-rules from imported modules

Yury Bulka <setthemfree-tGttlkr9q/[email protected]> Sat, 25 Apr 2020 23:14:39 +0300
Newsgroups gmane.comp.lang.racket.user,gmane.lisp.scheme.plt
Message-ID <[email protected]>
Oops, small correction:

> The x-expressions need to include hyperlinks to urls
> defined via dispatch-rules in main.rkt, i.e., call the url-generating
> function.

Should be `routing.rkt` instead of `main.rkt`.

--
Yury Bulka
https://mamot.fr/@setthemfree
#NotOnFacebook



Yury Bulka <setthemfree-tGttlkr9q/[email protected]> writes:

> Dear Racket community,
>
> First of all I want to say hello since this is my first post here.
>
> I have a question about using the url dispatch library:
> https://docs.racket-lang.org/web-server/dispatch.html
>
> More specifically about the url-generation function in the context of
> inter-module dependencies.
>
> Let's say in `routing.rkt` I define some request handlers and then map
> them to urls using dispatch-rules.
>
> The request handlers call functions from another module that are
> responsible for generating the x-expressions (let's call this module
> `templates.rkt`). The x-expressions need to include hyperlinks to urls
> defined via dispatch-rules in main.rkt, i.e., call the url-generating
> function.
>
> The url-generating function, in turn, needs to be provided the request
> handler as the first argument.
>
> That means that the xexpr-generating function needs to have access to
> the url-generating function and all the request handlers it might
> need to include hyperlinks to, or it may need to be provided with all
> the generated urls in advance.
>
> Something like this wouldn't work if render-post needed to generate a url:
>
> ;; A request handler associated with a url
> (define (single-post-view request post-id)
>   (response/xexpr (render-post (post-id))) ;; render-post is in another file/module
>
> I wouldn't want to make templates.rkt require routing.rkt (I'm not sure
> this is technically possible to have modules depend on each other like
> that), nor would I want to provide all the request handlers as arguments
> to `render-post`. I also thought about putting the url-generating
> function into a parameter, but `render-post` also needs access to the
> request handlers.
>
> What approach should I take?
>
> --
> Yury Bulka
> https://mamot.fr/@setthemfree
> #NotOnFacebook

-- 
You received this message because you are subscribed to the Google Groups "Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/87tv17iaq8.fsf%40privacyrequired.com.