3

다른 마이크로 서비스에서 microservice의 HAL-JSON REST API를 호출하려면 스프링 클라우드 @FeignClient을 사용하려고합니다. 이 서비스는 Hateoas가 기본적으로 활성화 된 Spring Data Rest, Spring Boot 1.4로 구현됩니다.@FeignClient를 사용하여 HAL JSON _embedded 컬렉션을 매핑하는 방법

클라이언트 쪽에서 전용 DTO를 사용하면 모든 단순 속성이 올바르게 매핑되지만 HAL 관련 _embedded 컬렉션은 무시됩니다. this post에서 primarly 촬영으로

, 우리는 종종 Jackson2HalModule 언급 사용하여, 해당 ObjectMapper와 척하기 Decoder 사용자 정의를 구현하지만 여전히 우리의 문제가 해결되지 않습니다.

문제가 더 자세히 설명되어있는 this sample project과 함께 문제를 재현 할 수 있습니다.

이 문제에 대한 도움이나 의견에 감사드립니다. 미리 감사드립니다.

답변

0

저는 이것을 비 직렬화하는 방법을 이해하는 열쇠는 Customer이 관계를 포함하고있는 Resources 클래스라는 것입니다. 따라서 HalResourcesDeserializer을 가져 오려면 Resources으로 역 직렬화해야합니다.

이렇게하면됩니다.

@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가 도움을 주었습니까? –