You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Allow the mounting of sub-routers on patterns and pass the data to the sub-routers mounted on them.
Use cases
There are many use cases, one of which is being able to organise your code more, but this one is the most important I think:
Scope
This way it would be able to put your entire application in a "scope".
example
I'm creating an application that has different spaces, every space has its own data, but is functionally the same.
What I want to be able to do is the following:
val subRouter =Router.router(vertx)
subRouter.get("/get-all-data").handler { context ->var client = getConnection(vertx)
val spaceDb = getDbForSpace(context.subRouterData?.get("space"))
val testSql ="SELECT * FROM $spaceDb.products"
client.preparedQuery(testSql).execute().onFailure { e ->val errorResultString ="an error occurred: ${e.message}"println(errorResultString)
context.response().end(errorResultString)
}.onSuccess { result:RowSet<Row> ->val testResult ="$testSql produces ${result.size()} rows!"println(testResult)
context.response().end(testResult)
}
}
mainRouter.route("/:space*").subRouter(addProductRouter) { ctx ->
ctx.insertSubRouterData("space", ctx.pathParam("space"))
}
This would be implemented along the lines of:
// This is a Kotlin extension function, but in Java, this would be placed inside the Route classfun Route.subRouter(subRouter:Router, handler: (RoutingContext) ->Unit) {
this.handler { ctx ->// execute provided handler
handler(ctx)
// pass the request handling to the sub-router
ctx.next()
}
this.subRouter(subRouter)
}
Contribution
I do not have the required knowledge to properly implement this feature. But I think this would be a welcome addition to the platform.
The text was updated successfully, but these errors were encountered:
Mount subRouters on patterns
Allow the mounting of sub-routers on patterns and pass the data to the sub-routers mounted on them.
Use cases
There are many use cases, one of which is being able to organise your code more, but this one is the most important I think:
Scope
This way it would be able to put your entire application in a "scope".
example
I'm creating an application that has different spaces, every space has its own data, but is functionally the same.
What I want to be able to do is the following:
This would be implemented along the lines of:
Contribution
I do not have the required knowledge to properly implement this feature. But I think this would be a welcome addition to the platform.
The text was updated successfully, but these errors were encountered: