Query Parameters and Path Parameters are also fairly straight forward in Undertow. There is some slight boilerplate because technically query and path params can have multiple values. We are using some helper functions (PathParameters.java and QueryParameters.java
Path Parameter and Query Parameter RoutingHandler
Fairly standard path param syntax. Undertow uses {param} you may be used to :param from other frameworks. Path parameters are a great way to have human readable urls which can benefit users and SEO. ToonStyle's URL for the page on Kung Fu Panda Merchandise can be constructed by slugifying the franchise name into the following url /franchise/{franchiseName}
.
Path Parameter and Query Parameter HttpHandlers
These should be straight forward. Once again we are using the following helpers PathParameters.java and QueryParameters.java
Server
Output
Best Practices
Although it's not very hard calling params in this way we recommend extracting the logic out even further. Take a look at Request Utilities in the REST post. Here you define the string literals and defaults once and only once. Everywhere else in the code that references this param is called just like UserRequests.email(exchange). This way if you change the param name or even the type of param it updates all of your code at once. Sharing defaults is also incredibly useful. Another feature of this is you can cache values on the HttpServerExchange so you can use expensive calls in multiple routes with the cached values.
Obfuscating Sequential Ids
Sometimes you may want to obfuscate sequential ids to reduce the possibility of giving away some information. A quick example on Obfuscating and Shortening Sequential ids with HashIds.