我使用Jersey + Jackson(內置於Dropwizard中)創建一系列Web服務。我通過將它們傳遞到響應對象中澤西直接映射在JSON對象:傳遞給Jersey + Jackson時從實體中刪除字段
myObject object = new myObject(fields...);
return Response.ok(object).build();
域被正確地註釋中myObject的類JsonProperty(「fieldName的」)。但是,如果我有一個字段,我需要存儲到數據庫(例如:密碼哈希),但我不想傳入請求響應,我怎麼能刪除該字段時,將實體傳遞給響應目的?
我不能使用JsonIgnore註釋該字段,否則當我將Json映射到數據庫(ElasticSearch)時,該字段根本不會被序列化。
謝謝;我從來沒有使用實體過濾,但我認爲這是實現我所需要的最好方法。你能否提供一個Dropwizard中實體過濾的例子(我正在使用DW 0.8.0-rc1)?實體過濾只能在單個資源/路徑上工作,而不是在全局應用程序級上工作嗎? –
我剛剛意識到它目前不支持Jackson。我一直在試圖實現一些東西,但這並不是微不足道的。我想說的是用一個DTO或將其設置爲空。如果您想要更優雅的解決方案(不必在資源方法中將字段設置爲null),則可以使用JAX-RS攔截器,但在執行此操作之前,我會考慮兩次。有些東西像密碼一樣安全,我會盡可能遠離最終進程 –
DTO對象+1。 – Natan