Hi, I’m not sure if this is possible, but I’d like to resolve the URL of a route from the api side.
Basically, I have this route:
<Route path="/dashboard/{id}" page={DashboardPage} name="dashboard" />
and I want to resolve the route from a service with this:
// api/src/services/dashboards/dashboard.js
import { routes } from '@redwoodjs/router'
...
console.log(routes.dashboard({
id: '12345'
})
But this code does not work. How should I resolve this on server side?
Can you explain more about what you are looking to do rather than how?
The api and web sides are distinct — there is no concept of a router in the api.
Are you trying to have a service that “does something” given the is viewing dashboard with id 12345” and something else if id 6789?
This is my use case:
- I have a page with a form where I ask for an email.
- When someone enters his/her email, the server creates a dashboard using a uuid (e.g. http://mydomain/dashboard/fa9c607b-7288-4e10-b477-675e1f092e7c
- The backend sends the link with the dashboard URL to the email of step 1.
So, this use case is basically a way of login without creating username+password.
- The logic of creating URLs must be on the server, not the front-end.
- I’d like to be able to get URL via the routes names for DRY reasons.
there is no concept of a router in the api.
OK, that responded to my question, but why not? The ability of resolving routes by its names is not only a “web” concern.