Hi!
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/ from /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
GET /d24n-test
with no trailing slash.
Thanks for any thoughts or hints!