我目前正在为搜索查询实现Rest API.该方法采用多个过滤器参数,如关键字,名称,标题,描述,日期等.为了保持DRY并避免重复的if else子句,我正在寻找从数据库中检索资源的最佳实践方法.让我们说数据库公开了两个方法,findByUsername(…)和findByDescription(),我们希望通过一个宁静的Web界面公开它们.一个天真的实现将使用类似于下面的if和else子句.
@GET
@Path("users")
public User getUsers(@QueryParam("username") String username,
@QueryParam("description") String description) {
User user = null;
if (username != null) {
// execute findByUsername method to the database
user = findByUsername(username);
} else if (description != null) {
// execute findByDescription method to the database
user = findByDescription(description);
}
return user;
}
问题是如何改进上面的代码,以避免多余的if else(检查)条款并保持DRY?
我正在使用Jersey JaxRS 2.0实现Web服务