작성
·
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-hateoas
와 spring-boot-starter-webflux
에 의존성을 추가해야 한다는 점을 기억해주세요.
참고 URL: Spring HATEOAS Documentation