-
[스프링부트 개념과 활용] HATEOASSPRING/스프링부트 개념과 활용 2021. 1. 3. 23:27
jump-developer.tistory.com/49?category=868499
HATEOAS란 ?
Hypermedia as the Engine of Application State의 약자이다.
HATEOAS는 Rest APi를 만들 때 사용이 되고, 서버가 클라이언트에게 리소스에 대한 정보를 제공할 때 연관되어 있는 링크 정보들까지 같이 제공하는 역할을 한다.
사용되는 의존성
pom.xml에 아래와 같이 추가해준다.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-hateoas</artifactId> </dependency>
@RestController public class HateoasController { @GetMapping("/hello") public EntityModel<Hello> hello() { Hello hello = new Hello(); hello.setPrefix("hey, "); hello.setName("jump"); EntityModel<Hello> helloEntityModel = new EntityModel<>(hello); helloEntityModel.add(linkTo(methodOn(HateoasController.class).hello()).withSelfRel()); return helloEntityModel; } }
-> HateoasController에서 제공하는 hello라는 메서드에 대한 링크를 따서 이 링크를 Self라는 릴레이션을 만들어서 추가함.
@RunWith(SpringRunner.class) @WebMvcTest(HateoasController.class) public class HateoasControllerTest { @Autowired MockMvc mockMvc; @Test public void hello() throws Exception { mockMvc.perform(get("/hello")) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("$._links.self").exists()); } }
-> Hello라는 객체가 json으로 변환이 되어서 응답을 return한다.
public class 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; } }
TEST 결과
'SPRING > 스프링부트 개념과 활용' 카테고리의 다른 글
[스프링부트 개념과 활용] 인메모리 데이터베이스(H2) (0) 2021.01.09 [스프링 개념과 활용] CORS (0) 2021.01.07 [스프링부트 개념과 활용] ExceptionHandler (0) 2021.01.03 [스프링부트 개념과 활용] 템플릿 엔진 - Thymeleaf (0) 2021.01.01 [스프링부트 개념과 활용] index 페이지 (0) 2021.01.01