У меня есть RouterFunction с вложенными маршрутами, все, кроме одного маршрута, с которым я думаю, что они должны делать.Но когда я пытаюсь вызвать один из корневых маршрутов внутри вложенного маршрута, я всегда получаю 404. Это происходит только с этим конкретным маршрутом, и когда я меняю его с корневого на "/ foo", он начинает работать.
код:
public RouterFunction<ServerResponse> productRouter(final ProductHandler handler) {
return nest(path(apiPath + BASE_PATH),
route(POST("/").and(contentType(MediaType.APPLICATION_JSON)), handler::handleCreateProduct)
.andRoute(GET("/{id}"), handler::handleGetProductById)
.andRoute(PUT("/").and(contentType(MediaType.APPLICATION_JSON)), handler::handleUpdateProduct)
.andRoute(GET("/"), handler::handleGetAllProducts)
.andNest(path("/category"),
route(POST("/").and(contentType(MediaType.APPLICATION_JSON)), handler::handleCreateProductCategory)
.andRoute(GET("/{id}"), handler::handleGetProductCategoryById)
.andRoute(GET("/"), handler::handleGetAllProductCategories)
.andRoute(GET("/search/{name}"), handler::handleGetProductCategoriesByName)
))
.andNest(path("/brand"),
route(POST("/").and(contentType(MediaType.APPLICATION_JSON)), handler::handleCreateProductBrand)
.andRoute(GET("/"), handler::handleGetAllProductBrands)
.andRoute(GET("/{id}"), handler::handleGetProductBrandById));
}
Маршрут, который не работает правильно, выглядит следующим образом:
.andRoute(GET("/"), handler::handleGetAllProductCategories)
Странная вещь заключается в корневом пути и пути брендов.точно так же и эти маршруты работают.
Спасибо за помощь