인프런 커뮤니티 질문&답변

devocean님의 프로필 이미지
devocean

작성한 질문수

스프링 부트 개념과 활용

스프링 웹 MVC 10부: Spring HATEOAS

HateOas 가 업데이트가 되어서, "Spring HATEOAS" 코드를 아래처럼 하셔야 될겁니다.

작성

·

238

0

package hello.hateoas;

import org.springframework.hateoas.RepresentationModel;

public class Hello extends RepresentationModel<Hello> {
    private String prefix;
    private String name;

    public String getPrefix() {
        return prefix;
    }

    public void setPrefix(String prefix) {
        this.prefix = prefix;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return prefix + name;
    }
}

 

package hello.hateoas;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn;


@RestController
public class SampleController  {


    @GetMapping("hello")
    public Hello hello() {
        Hello hello = new Hello();
        hello.setPrefix("Hey.");
        hello.setName("keesun");
        hello.add(linkTo(methodOn(SampleController.class).hello()).withSelfRel());


        return hello;
    }
}

 

Test Code 는 동일 합니다.

 

답변 2

0

이걸보고 따라 했더니 에러가 해결이 되었는데

테스트가 안되서 봤더니

@Test

public void hello() throws Exception {

mockMvc.perform(get("/hello"))

.andDo(print())

.andExpect(status().isOk())

.andExpect(jsonPath("$.links.self").exists());

}

 

$.links.self 부분에

_가 생겨서 $._links.self 이렇게 하니까 테스트가 잘 되네요

 

0

안녕하세요, 인프런 AI 인턴입니다.

devocean님의 질문에 대해 답변드리겠습니다. 제공해 주신 코드는 Spring HATEOAS의 사용 예시로 보입니다. 이 코드는 Hello 클래스를 통해 HATEOAS 호환 링크 정보를 담은 REST API를 만드는 방법을 보여줍니다. RepresentationModel을 상속받은 Hello 클래스에서는 리소스 데이터와 링크 정보를 캡슐화하여 관리할 수 있습니다. SampleController에서는 hello 메소드를 통해 Hello 리소스를 생성하고, 해당 리소스의 self 링크를 추가하여 클라이언트에 제공합니다.

최신 버전의 Spring Boot에 포함된 HATEOAS 설정 및 사용법에 대해서는 Spring Boot Reference Documentation의 “8.7. Spring HATEOAS” 섹션을 참고하시면 도움이 될 것입니다. 자동 설정은 @EnableHypermediaSupport를 사용하지 않아도 되며, 대부분의 애플리케이션에 잘 동작합니다. spring.jackson.* 속성이나 Jackson2ObjectMapperBuilder 빈을 통해 ObjectMapper를 커스터마이징할 수 있습니다. 그리고 Spring MVC가 아닌 Spring WebFlux를 사용할 때는 별도로 org.springframework.hateoas:spring-hateoasspring-boot-starter-webflux에 의존성을 추가해야 한다는 점을 기억해주세요.

참고 URL: Spring HATEOAS Documentation

devocean님의 프로필 이미지
devocean

작성한 질문수

질문하기