복붙노트

[SPRING] Spring 데이터 나머지로 resourceId를 노출하는 방법

SPRING

Spring 데이터 나머지로 resourceId를 노출하는 방법

entity.the ID 필드에 @Id로 주석 된 기본 키를 노출하는 것이 었습니다. ID 필드는 리소스 경로에서만 볼 수 있지만 JSON 본문에서는 볼 수 없습니다.

해결법

  1. ==============================

    1.엔티티 레벨에서 RepositoryRestConfigurerAdapter를 사용하여이를 구성 할 수 있습니다.

    엔티티 레벨에서 RepositoryRestConfigurerAdapter를 사용하여이를 구성 할 수 있습니다.

    @Configuration
    public class ExposeEntityIdRestConfiguration extends RepositoryRestConfigurerAdapter {
    
        @Override
        public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
            config.exposeIdsFor(MyEntity.class);
        }
    }
    

    이것을 사용하면 spring-data-rest의 원칙에 반하는 작업을 수행한다는 것을 알아 두십시오. - sdr은 링크를 사용하여 리소스를 탐색하여 API를 사용할 수 있도록 하이퍼 미디어를 홍보합니다. 여기에서 리소스는 링크로 식별되고 참조되므로 ID는 링크가 아닙니다. 더 이상 필요 없습니다. 클라이언트에서 ID를 사용하면 리소스 링크를 클라이언트에 복잡하게 만듭니다. 그리고 클라이언트는이 지식으로 귀찮게해서는 안됩니다.

  2. ==============================

    2.가장 좋은 해결책은 엔티티의 ID를 사용하지 않고 하이퍼 미디어가 제공하는 링크 참조를 사용하는 것입니다. 스프링 데이터 나머지가 사용하는 HAL 사양에 따라 JSON을 구문 분석하면됩니다.

    가장 좋은 해결책은 엔티티의 ID를 사용하지 않고 하이퍼 미디어가 제공하는 링크 참조를 사용하는 것입니다. 스프링 데이터 나머지가 사용하는 HAL 사양에 따라 JSON을 구문 분석하면됩니다.

  3. from https://stackoverflow.com/questions/34973156/how-to-expose-the-resourceid-with-spring-data-rest by cc-by-sa and MIT license