【发布时间】:2020-01-22 11:41:51
【问题描述】:
问题:
我正在尝试在控制器的单个映射中接收多个资源。我需要获取这些资源并用于访问 MongoDB 中的数据。
示例:
如果访问位于:mydomain.com/rootresource/datakey1/datakey2
我想获取 rootresource 之后的资源,用于在 MongoDB 中搜索数据。 rootresource之后的资源数量不是固定的。
我的实际控制人:
@RestController
@RequestMapping("users")
public class UserController {
@Autowired
private UserService service;
@PostMapping
public void create(@RequestBody UserCreateRequest request) {
service.create(request.getAccess(), request.getPassword(), request.getData());
}
@GetMapping("/{access}")
public UserDTO readByAccess(@PathVariable("access") String access) {
return service.read(access);
}
@GetMapping("/{data:[\\/.]*}")
public Document readByAccessAndData(@PathVariable("data") String data) {
return null;
}
}
我的实际尝试是在readByAccessAndData 函数中。当我调用 url .../users/key1/key2 时,收到的错误是:
{
"timestamp": "2019-09-21T22:22:31.262+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/users/key1/key2"
}
【问题讨论】:
-
所以当你有请求时:mydomain.com/rootresource/datakey1/datakey2 你想查询 MangoDB 以获取 user1 和 user2 信息对吗?我认为要实现这一点,您需要有一个我现在在控制器中没有看到的 @RequestMapping(“rootresouce”)。
标签: spring spring-boot spring-mvc