I’m trying to implement old-school directory indexing behavior for dynamically generated resources via tapir.
When I notice definition of a simple GET endpoint like
/mypath/index.html, I want to augment it with an endpoint like
/mypath/ that serves the HTML file.
If I see a URL like
/mypath, without the trailing slash, I don’t want to serve the HTML directly (because that breaks relative URLs in the index). I want to redirect to to
/mypath/ and then serve. (Browsers will take the base URL in this format to be
/mypath rather than
/, preserving relative URLs.)
I’ve tried several approaches to try to get an endpoint to distinguish
/mypath without too much success. Since the model parses paths to elements, it’s not obvious how to see the trailing slash. I’ve tried using
.in(extractFromRequest( _.showShort ))
hoping I could check the generated String for the trailing slash, but what seems to happen is I automatically get the redirect opposite to the one I want,
/mypath/ -> /mypath, and then the short request I see is always
with no trailing slash.
Thanks for any thoughts or hints!