添加@QueryParam时,RESTful API资源返回404

时间:2017-05-12 22:14:03

标签: rest http-status-code-404 restful-url query-parameters

我的资源到目前为止工作正常。我在那里添加了@QueryParam。如果我在没有向uri编写查询参数的情况下发出请求就可以了。在我将查询参数写入uri 404代码响应之后。

@GET
    @Path("{id}/appointments")
    @UnitOfWork
    @JsonView(Views.DoctorView.class)
    public List<?> getDoctorAppointments(@Auth LoggedUser loggedUser,
                                         @QueryParam("date") Date date,
                                         @QueryParam("timePeriod") TimePeriod timePeriod,
                                         @PathParam("id") int id
                                         ) {
        if(date != null && (timePeriod == null || timePeriod.equals(TimePeriod.TODAY))){
            return appointmentDAO.getDoctorsAppointmentsByDate(id, date);
        }
        if(date != null && timePeriod.equals(TimePeriod.WEEK)){
            return appointmentDAO.getDoctorsNumberOfAppointmentsForWeek(date, id);
        }
        return appointmentDAO.getAppointments(id, UserType.DOCTOR);
    }

1 个答案:

答案 0 :(得分:0)

如果您收到404,我怀疑您没有正确发出HTTP请求。我对查询的假设没有您要发出的datetimePeriod参数

GET http://my-site/1/appointments

如果您尝试通过日期并获得404,则表示您正在发布

GET http://my-site/1/appointments/date=2017-01-13

或许这个

GET http://my-site/1/appointments/2017-01-13

哪个会导致404,而这应该可以正常工作并传入date查询参数

GET http://my-site/1/appointments?date=2017-01-13
我可能猜错了。让我知道您查询的网址是什么样的,我们可以解决更多问题。