我使用球衣+ guice來開發REST應用程序。我想爲查詢參數進行輸入驗證,但是我正在尋找的是「隨時可用」的解決方案,而不是自己寫的。如何將球衣與guice和bean驗證相結合
我已經找到support與澤西島的bean驗證,但不幸沒有 想法如何將它與guice集成。我需要做的大多數驗證都是簡單的@NotNull檢查。我需要驗證該值並在驗證失敗時返回詳細的消息。
任何想法?建議?
我使用球衣+ guice來開發REST應用程序。我想爲查詢參數進行輸入驗證,但是我正在尋找的是「隨時可用」的解決方案,而不是自己寫的。如何將球衣與guice和bean驗證相結合
我已經找到support與澤西島的bean驗證,但不幸沒有 想法如何將它與guice集成。我需要做的大多數驗證都是簡單的@NotNull檢查。我需要驗證該值並在驗證失敗時返回詳細的消息。
任何想法?建議?
我已經完成了。
而不是使用glassfish擴展球衣我使用apache bean驗證。需要進行以下的依賴將被添加到項目(gradle這個樣子):
compile 'org.apache.bval:bval-guice:0.5'
compile 'javax.validation:validation-api:1.1.0.Final'
在創建吉斯注射器以下模塊應加入:
org.apache.bval.guice.ValidationModule
這裏是映射的樣子(常規)
import com.google.inject.Singleton
import javax.validation.ConstraintViolationException
import javax.ws.rs.core.Response
import javax.ws.rs.ext.ExceptionMapper
import javax.ws.rs.ext.Provider
import static groovy.json.JsonOutput.toJson
import static javax.ws.rs.core.Response.Status.BAD_REQUEST
import static javax.ws.rs.core.Response.status
@Provider
@Singleton
class ValidationExceptionMapper implements ExceptionMapper {
@Override
Response toResponse(ConstraintViolationException e) {
status(BAD_REQUEST).entity(toJson(e.constraintViolations*.message)).build()
}
}
異常映射器必須綁定在任何具有簡單bind()方法的guice模塊中。 然後法進行驗證的參數應標有:
org.apache.bval.guice.Validate
而例如使用參數:
javax.validation.constraints.NotNull
這就是全部。
這也可以整合Guice + Hibernate驗證器:https://github.com/xvik/guice-validator我剛剛證實它可以正常使用該組合+澤西島: –