API-s

时间:2018-01-05 22:34:08

标签: rest api spring-boot

我正在尝试构建一个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();
}

1 个答案:

答案 0 :(得分:0)

API不需要复数,只有一个API。

也就是说,您确实希望将您的员工集合多元化,因为有多个员工并且您正在通过它们进行过滤。

您可以按照建议完全过滤收藏。代码与创建您想要过滤的所有选项的哈希(可能将它们列入白名单)一样简单,然后在代码中执行此操作。

这只是一个关于如何将选项转换为查询的问题,而不是实际上与REST或API有关。