我想知道 Spring Boot 最佳實踐。我有一個 Spring Boot API,它基本上公開了另一個 API。這是一個必要的邪惡。外部 API 完全是一場災難,我們無法直接將其暴露給我們的客戶。問題在于,此 API 有時需要 requestBody 中的字段,但不會將它們返回給使用者。將其轉換為 Spring Boot(Javax 驗證或 Lombok)。我不能只在這些字段上添加 @Notnull 或 @Nonnull 注釋。因為當 Jackson 嘗試反序列化 responseBody 時,它會失敗。我應該在這里做什么?我應該制作一個單獨的 ObjectIn 和 ObjectOut我應該刪除注釋并在restController 中進行自定義條件檢查嗎我應該完全做些別的事情嗎
2 回答

Helenr
TA貢獻1780條經驗 獲得超4個贊
如果請求和響應有效負載不同,則使用不同的類來表示它們可能是有意義的。為了處理將 DTO 映射到域模型(以及其他方式)的樣板代碼,您可以查看映射框架,例如MapStruct,它與 Spring 集成得很好。
除了為輸入和輸出定義不同的類之外,您還可以研究驗證組。

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
假設數據以 JSON 結構傳輸。
使用 @JsonProperty(value = "example_field_name", required = false),將 required 設置為 false,來注釋您的屬性。如果 JSON 結構中缺少字段,Jackson 將不會拋出任何錯誤。
添加回答
舉報
0/150
提交
取消