Можем ли мы реализовать как @pathparam, так и @queryparam для одной и той же конечной точки - PullRequest
0 голосов
/ 16 января 2019

Я учу себя разработке REST API.В рамках этого я создаю веб-сервер Java.Однако я застрял на чем-то и не знаю, как действовать.

У меня есть конечная точка с именем /users, через которую пользователи будут GET данные.Однако я хочу реализовать опцию поиска пользователя и ограничения количества возвращаемых пользователей.Например:

  • GET /users/300 должен вернуть пользователя с ID 300.
  • Если я получу запрос GET /users?count=10, я хочу ограничить возврат до 10 пользователей.

Для этого я остановился на использовании @QueryParam и @PathParam.Вопрос в том, могу ли я использовать их оба в одном и том же методе?

Например:

@Path("/User") 
@Produces({"application/json"})
public List<User> getUsers() {
    // ...
}

@GET
@Path("/{id}")
public JSONObject getUserwithId(@PathParam("id") int id) {
    return jsonObjectwithId;
}

@Path("?count")
public JSONObject getUserwithCount(@QueryParam("count") int count) {
    return noOfusers;
}

Я хочу узнать, возможно ли это.

1 Ответ

0 голосов
/ 16 января 2019

Да, я делал это раньше на веб-сервисах, над которыми лично работал.Это не так часто, поскольку REST-интерфейсы обычно не заслуживают необходимой сложности.Но вполне допустимо использовать @QueryParam и @PathParam одним и тем же методом.Я вижу, что вы используете Джерси.Исходя из этой темы , если вы на самом деле используете Jersey 1.x, вам может потребоваться обновление, если у вас есть проблемы.

...