3

我們試圖使用spring-cloud @FeignClient從另一個微服務調用微服務的HAL-JSON REST API。該服務使用Spring Data Rest,Spring Boot 1.4實現,缺省情況下啓用Hateoas。如何使用@FeignClient映射HAL JSON _embedded集合

在客戶端使用專用的DTO,所有簡單屬性都被正確映射,但HAL特定的_embedded集合被忽略。

由於從this post primarly拍攝,我們實現了一個自定義的假死Decoder與相應ObjectMapper,使用經常提到Jackson2HalModule,但是這仍然沒有解決我們的問題。

您可以使用this sample project重現問題,其中更詳細地描述了問題。

感謝您對此問題的任何幫助或提示!在此先感謝

回答

0

我認爲理解如何反序列化的關鍵是你的Customer是嵌入關係的Resources類。因此,您需要將其反序列化爲Resources,以便HalResourcesDeserializer可以將其取出。

我是這樣工作的。

@Getter 
@Setter 
public class Customer extends Resources<Resource<Relation>> { 

    public static enum Type { 
     PERSON, INSTITUTION 
    } 

    private String displayName; 

    private Integer rating; 

    private Type type; 

    public Collection<Resource<Relation>> getRelations() { 
     return this.getContent(); 
    } 
} 

這仍然看起來有點奇怪,我不知道這是否是最好的解決方案。

+0

@megli有幫助嗎? –