Hey everyone! Does anyone know of any docs/examples I can read on recommended ways to split client and server side routing with reitit? A little more context. I'm starting a project with the default reagent template. It's set up by default to use reitit both server and client side. The server-side implementation essentially has all the client routes duplicated, simply returning a 200 and rendering the main landing page, so that the client code can then check the URL and navigate accordingly. That works, I'm just trying to avoid duplicating all my client-side routes in the server-side ring router if I can, and figure there must be a way people usually do this. These are the things I already considered, just wondering if anyone has a better way: • structure routes such that client and api routes have common prefixes respectively, then have a catch-all handler in the server to send all client routes a 200 and let the frontend handle it • move the router data structure to cljc, seeing as it's just data
Is this a spa?
If yes, generally speaking a pattern is to have a single catch-all route on the backend and then one writes their routes for the SPA on the front end so you end up writing it once
Yeah, it's an SPA. OK, thanks, I think that's pretty much what I had in mind with my first suggestion. I have a bunch of /api backend routes, and if the request doesn't match them, I let the front end handle it. Presumably this would mean that invalid requests technically receive a 200 status code, but the page rendered would be displaying an error?
> invalid requests technically receive a 200 status code, but the page rendered would be displaying an error? Yep, that’s def one way to handle it 🙂