2015-12-03 52 views
-1

我在dropwizard項目中使用groovy,並且在未指定@QueryParam時試圖返回404而不是500。如何驗證@QueryParam爲非空

我試過用javax.validation.constraints.NotNull的@NotNull標誌以及com.sun.isstack.NotNull,但都沒有正常工作。

爲了澄清,我想返回404,當用戶不針對具體的參數之一進入PARAM:

Response getReport(
           @QueryParam('startDate') String startDate, 
           @QueryParam('endDate') String endDate, 
           @QueryParam('timezone') String zoneId) { 
+0

沿着'if!startdate return Response.notFound'行的東西很繁瑣,但會起作用,或者如http://www.dropwizard.io/0.9.1/docs/manual/validation.html中所述驗證並提供一個'ExceptionMapper ',它用404而不是400 – zapl

回答

1

嘗試是爲com.google.common.base.Optional(依賴包括在Dropwizard):

Response getReport(@QueryParam('startDate') Optional<String> startDate, 
        @QueryParam('endDate') Optional<String> endDate, 
        @QueryParam('timezone') Optional<String> zoneId) { ... }