我正在尝试构建一个API,主要是为了掌握构建API的经验,因为我以前从未使用过API。到目前为止,我已经将所有基本方法GET / POST / PUT / DELETE正常工作。 当我调用GET方法时:
http://localhost:8100/apis/employee
它返回数据库中的所有员工,这部分是有意义的。我的问题是如何实现过滤器说只有让员工说出firstName = john 我知道我可以说
http://localhost:8100/apis/employee/1
它将拉出id = 1的员工,但我不希望这样。
为了说清楚我的问题是,如何在我的GET方法上处理这样的请求
http://localhost:8100/apis/employee/?firstName=john&lastName=smith
这就是我的GET功能的样子。我正在使用SpringBootApplication
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response getAllEmployees() {
List<Employee> employeeList = (List<Employee>)employeeRepository.findAll();
if (employeeList.size() == 0) {
return Response.status(Response.Status.NOT_FOUND).build();
}
return Response.ok(employeeList).build();
}
答案 0 :(得分:0)
API不需要复数,只有一个API。
也就是说,您确实希望将您的员工集合多元化,因为有多个员工并且您正在通过它们进行过滤。
您可以按照建议完全过滤收藏。代码与创建您想要过滤的所有选项的哈希(可能将它们列入白名单)一样简单,然后在代码中执行此操作。
这只是一个关于如何将选项转换为查询的问题,而不是实际上与REST或API有关。