У меня есть класс ресурсов - интерфейс UserResource, и я определил конечную точку как getUsers.
Теперь я хочу отфильтровать этих пользователей по статусу пользователя - (активный, неактивный) и это не обязательно, так что если я это сделаюне передавая статус, он получит всех пользователей.
Теперь вопрос заключается в том, должен ли я передать это как @ QueryParam или получить его от
HttpServletRequest - httpServletRequest.getParameter("Status").
Какой извышеприведенные два - лучший способ, и в каком сценарии я должен использовать какой.
1. Первый способ - передать статус в качестве параметра запроса и определить его в самом файле ресурсов.Здесь UserResource - интерфейс контроллера или класс ресурсов.В методе getUsers есть @QueryParam.
import javax.ws.rs.core.Response;
@Path(/user)
public interface UserResource{
@GET
@Path("/")
@Produces({ MediaType.APPLICATION_JSON })
Response getUsers(@QueryParam("status") String status);
}
@Component
Public class UsersResourceImpl implement UserResource{
public Response getPlan(String status){
String userStatus = status;
// some logic
}
}
2. Второй способ - получить параметр запроса из HttpServletRequest.поэтому я автоматически подключил HttpServletRequest и получил параметр запроса из httpservletrequest.
import javax.ws.rs.core.Response;
@Path(/user)
public interface UserResource {
@GET
@Path("/")
@Produces({ MediaType.APPLICATION_JSON })
Response getUsers();
}
import javax.servlet.http.HttpServletRequest;
@Component
Public class UsersResourceImpl implements UserResource{
@Autowired
private HttpServletRequest httpRequest;
public Response getPlan(String status){
String status = httpRequest.getParameter(status)
// some logic
}
}
'''