[undertow-dev] REST routing

Stuart Douglas sdouglas at redhat.com
Mon Apr 21 02:35:18 EDT 2014


Two options.

If you set the 'rewriteQueryParameters' option to true in the handler 
then they will be available in the exchange query parameters.

Otherwise they can be retrieved from the exchange as an attachment under 
the io.undertow.util.PathTemplateMatch.ATTACHMENT_KEY key.

Stuart

Jonathan Hart wrote:
> Stuart,
>
> I was able to successfully set up a RoutingHandler, and it is matching
> templates correctly. However, how do I get access to the {variable} data
> itself once inside my matched handler?
>
> I have looked through all of the Handler methods/props and the only
> place I see the values are in the relative path, which would require me
> to re-parse the URL to get to the data I need..
>
> A quick example is:
>
> /user/{userId}
>
> Which is matched when someone requests something like:
>
> /user/5
>
> How do I get access to the "5"? Perhaps I'm too new to Undertow to miss
> something obvious, but some advice would be appreciated!
>
>
> On Tue, Apr 15, 2014 at 6:16 PM, Bill O'Neil <oneil5045 at gmail.com
> <mailto:oneil5045 at gmail.com>> wrote:
>
>     Thanks for the quick response.  This is exactly what I was looking for.
>
>     Bill
>
>
>     On Tue, Apr 15, 2014 at 7:27 PM, Jonathan Hart
>     <jonathan.hart at gmail.com <mailto:jonathan.hart at gmail.com>> wrote:
>
>         Hi everyone (new to this list)
>
>         Many thanks for making this, I was trying to do the EXACT same
>         thing with Undertow and was having a very hard time wrapping my
>         head around predicates.
>
>
>         On Mon, Apr 14, 2014 at 5:38 PM, Stuart Douglas
>         <sdouglas at redhat.com <mailto:sdouglas at redhat.com>> wrote:
>
>
>
>             Bill O'Neil wrote:
>              > I was curious what the best practices would be for url
>             routing with many
>              > endpoints.
>              >
>              > For example
>              >
>              > POST /user/
>              > GET /user/{userId}
>              > GET /document/{documentId} ContentType=appliction/json
>             (only respond
>              > when json is requested)
>              >
>              > What would be the best option for this? I was able to
>             achieve most of
>              > what i wanted using the PredicatesHandler class. Is this
>             a good choice?
>
>             That will work fine, although there are more efficient ways
>             to do this.
>             I think this will actually be a fairly common use case, so I
>             have added
>             a handler to handle this:
>
>             https://github.com/undertow-io/undertow/commit/04385f29996673658bce3c131de4e0a32241e78e#diff-3
>
>
>             Basically it matches requests based on a combination of
>             method, path
>             template and predicate, and will be considerably more
>             efficient that
>             testing a list of predicates.
>
>             Stuart
>
>
>
>              >
>              > This would build a List of PredicatedHandlers as well as
>             the fall
>              > through handler which I would use as a 404. I got an
>             example working
>              > using the text predicate format
>              >
>              > method[GET] and path-template[value=\"/user/{userId}\"]
>              >
>              >
>              > Is this a good approach or are there better recommendations?
>              >
>              >
>              > Thanks,
>              >
>              > Bill
>              >
>              > _______________________________________________
>              > undertow-dev mailing list
>              > undertow-dev at lists.jboss.org
>             <mailto:undertow-dev at lists.jboss.org>
>              > https://lists.jboss.org/mailman/listinfo/undertow-dev
>             _______________________________________________
>             undertow-dev mailing list
>             undertow-dev at lists.jboss.org
>             <mailto:undertow-dev at lists.jboss.org>
>             https://lists.jboss.org/mailman/listinfo/undertow-dev
>
>
>
>


More information about the undertow-dev mailing list