【发布时间】:2020-01-25 13:27:04
【问题描述】:
我对单例资源的最佳偏好感到困惑。我希望端点的用户 ID 为:
/users/{id}
但我也想要username 作为参数:
/users/{username}
我正在使用 Spring MVC(通过 Spring Boot),它说 2 个端点存在冲突。所以我决定首先为用户检索单例资源。但是为了让客户端仍然使用用户名作为参数,我添加了用户名作为用户集合资源的查询参数:
/users?username=<username>
在我的repository 和service 层中,返回是Optional<User>,即它是empty 或one user 结果。但是在controller 中,我将其包装在list 中,可以为空也可以为1,以使其与/users 作为列表的返回一致。
这样的设计合理吗?还是有更好的设计?谢谢。
【问题讨论】:
-
如果两个查询在同一个数据库上,你可以使用'UNION'来加入查询,
标签: java rest spring-mvc restful-url