java - REST API设计: Should we use same endpoint with diff params or create a new endpoint

标签 java rest

我正在致力于设计 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 端点并在这种情况下返回错误(例如,通过定义 sIdday)。

关于java - REST API设计: Should we use same endpoint with diff params or create a new endpoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42686930/

相关文章:

rest - postman "Self-signed SSL certificates are being blocked"

python - Python 的 REST API key 和值

python - Django REST 框架中的外键值

java - Java SE 中的焊接 CDI : PreDestroy annotated method called too early?

java - Android 客户端-服务器模型

Java 运算符证明包含在数组中

java - 如何对容器进行 dockerize 以便它可以在有或没有命令行参数的情况下运行?

javac:找不到文件(cygwin 错误)

rest - 为什么 Elasticsearch 批量插入使用\n定界符,而不是使用json对象数组?

rest - 向 Grails restfulcontroller 添加功能