[undertow-dev] dynamic URIs and overlapping method requests on URIs

David Robinson drobin1437 at gmail.com
Mon Mar 23 09:21:53 EDT 2020


I believe these two questions are very basic based on the posts I've read
so far on the mailing list.  I appreciate your insights into how to handle
these correctly using undertow handlers (was thinking custom handlers).

First topic: a portion of the URI for my app is "dynamic" and changes as my
program runs.
For example, with this URI:
     /xd/cohort1/healthevents/examdata
the "cohort1"  portion "appears" after my program starts.
Each cohort may have distinct processing - so this URI:
    /xd/cohort0/healthevents/examdata
needs to be handled by code that may be entirely different from the first
URI.

In a first approach, a single custom handler for the path /sd/* was
configured:

rh0 = new RoutingHandler().post("/xd/*", new
UndertowEventHttpHandler(config, posthandlers));

Undertow server = Undertow.builder().addHttpListener(ipPort,
ipAddress).setHandler(rh0).build();

That examined the URI, validated the "cohort" piece, and then called a
separate helper class directly (no dispatch, or async) to process the
request.

Is this the best approach or is there a better way to handle this with
Undertow?
(The out-of-the-box Path Template handler, for example, did not seem
dynamic enough to handle this sort of URI.)

Second topic: the application can receive "GETS" and "POSTS" to the same
URI.

A "GET" to  /xd/cohort1/healthevents/examdata  would return data where a
POST to  /xd/cohort1/healthevents/examdata  would expect the body of the
message to have JSON to be stored.

How to best handle both GET and POST messages coming to the same URI with
Undertow?  I started to add an extra layer of abstraction - a generic
handler that looked at the request method

HttpString hString = exchange.getRequestMethod();

but was not sure where to go from there...do I then call the specialized
POST and GET handlers with .dispatch (deprecated except if I provide an
Executor?) or is there a way to register two handlers for the same
path...just different request methods?

Thank you,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/undertow-dev/attachments/20200323/63c8c4ad/attachment.html 


More information about the undertow-dev mailing list