我正在致力于设计 Rest API。我有一个现有的终点说
@RequestMapping(value = "/games", params = {"tId", "sId"}, method = RequestMethod.GET)
哪些搜索游戏。现在我需要根据不同的属性集搜索游戏。我有两个选择:
a) 使用相同的端点“/games”,但采用不同的输入参数集,例如
@RequestMapping(value = "/games", params = {"tId", "day"}, method = RequestMethod.GET)
2)我应该为此创建一个单独的端点(URL)。
请多多指教。 另外,如果我选择第二个选项,端点名称应该是什么。
最佳答案
鉴于两个预期端点/端点返回相同的内容,我可能会选择保留一个接受所有可能参数的 REST 端点:
@RequestMapping(value = "/games", params = {"tId", "sId", "day"}, method = RequestMethod.GET)
您可以向处理程序方法添加逻辑,该方法检查已定义哪些传入参数,并基于此选择适当的操作过程。您可能需要添加逻辑来检测是否有人滥用 REST 端点并在这种情况下返回错误(例如,通过定义 sId
和 day
)。
关于java - REST API设计: Should we use same endpoint with diff params or create a new endpoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42686930/