如何在HTTP GET请求中指定参数

时间:2015-07-08 19:56:57

标签: rest http get http-headers httprequest

我正在开发一个REST API,我想发出一个GET请求,以JSON格式检索由" username"指定的用户,如:

{
id: "559d7ced2de324e22a78998b"
firstname: "fname"
lastname: "flast"
username: "testpassword"
password: "testusername"
address: "123 road"
city: "washington DC"
state: "california"
zipCode: "2345"
phoneNumber: "234523452345"
email: "email@gmail.com"
}

路径为/ users,就像:http://localhost:8080/users

我的问题是,如何进行指定用户名的GET请求调用。

是这样的:http://localhost:8080/users/?username=testusername

这是我的Java方法。我正在使用Spring REST:

/* Get user by username */
    @RequestMapping(method=RequestMethod.GET, value="{username}")
    public User getUserByUsername(@PathVariable String username) {
        return repo.findByUsername(username);
    }

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

你有两个选择。如果客户端知道用户名,则可以支持新端点

GET /users/{username}

如果客户需要按用户名搜索可用的用户组,那么您有一种方法:

GET /users
GET /users?username={username}

@RequestMapping(method=RequestMethod.GET)
public User getUserByUsername(@PathVariable String username) {
    if (username == null) {
        return repo.findAllUsers();
    }
    return repo.findByUsername(username);
}