我们正在开发基于 REST 的服务,并且我们正在使用 Spring MVC。我们正面临方法解析问题的 url。这大致就是我们正在尝试做的事情
假设我们有人带着他们的宠物
//Class level request mapping
@RequestMapping("/persons")
// Mapping to access a specific person inside one of the methods
@RequestMapping(value="/{personId}", method= RequestMethod.GET
//.... getPerson method
// Mapping to access a specific person's pets inside one of the methods
@RequestMapping(value="/{personId}/pets", method= RequestMethod.GET
// getPersonPets method
如果请求以“/persons/P12323233”的形式出现,其中 P12323233 是人员 ID,它将解析为 getPerson 方法。如果请求以“/persons/P12323233/pets”的形式出现,其中 P12323233 是人员 ID,它会解析为 getPersonPets 方法。
所以到目前为止一切都很好。但是如果请求以“/persons/pets”的形式出现,则请求将解析为 getPerson 方法。虽然我们可以在 getPerson 方法中将其作为错误情况处理,但我们正在尝试检查是否有任何方法可以解决对 getPersonPets 的调用方法。
我们仍在争论处理这种情况的正确位置是 getPerson 还是 getPersonPets 方法。除了争论之外,我们想知道实现 getPersonPets 方法的解析是否在技术上是可行的。
感谢任何帮助。