[web-devel] Type-safe URL handling

Jeremy Shaw jeremy at n-heptane.com
Fri Mar 19 17:42:18 EDT 2010

On Fri, Mar 19, 2010 at 4:22 PM, Michael Snoyman <michael at snoyman.com>wrote:

> As an example of both a unified URL creation framework and persistence
> framework, I've put together a little example of how we could create an
> "authentication plugin." For the purposes of our discussion here, we could
> ignore the persistence piece for now, though I would like to eventually
> discuss how we could make that better.

Yeah, I gotta finish the urlt stuff first before I think about something
else ;)

> I wrote a small blog post[1] describing the system. The code relevant for
> our discussion is broken into two files: WebPlug.hs[2] defines the interface
> and auth-example.hs[3] is the actual example.
> In this version of WebPlug.hs, I've included WebPlug as a datatype instead
> of a typeclass. I don't actually *use* that datatype here, but I think it
> would be very useful for higher-level utilities like the quasi-quoter to be
> able to access the three related functions together.

Right. I already have a similar datatype in URLT.HandleT. My type also
includes a 'defaultPage' type which can be used to specify what value "/"
should be mapped to. Though, in mine, the dispatch / handleLink function is
based on URLT, but that can probably be generalized. As a bonus you also get
a Functor instance, and a runSite function that uses the type..

You should really check out URLT sometime :p

I am not going to have time to look at this again until Saturday or Sunday.
There are a few minor details that have been swept under the rug that need
to be addressed. For example, when exactly does should url encoding /
decoding take place. It's not good if that happens twice or not at all.

- jeremy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/web-devel/attachments/20100319/516bdf70/attachment.html

More information about the web-devel mailing list