1. String 이 아닌 List 나 Array 로 return 을 하면 어떻게 서버에 출력될까?
기존에 스트링값으로 html 양식을 맞추어서 (프론트엔드 + 백엔드 혼합형) 바로 웹으로 쏴주던걸 서버와 클라이언트가 보는 뷰를 분리해서 서버로 데이터가 어떻게 가나 보았다.
package com.hoonstudio.board.controllers;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
public class WelcomeController {
private List<String> welcomes = new ArrayList<>();
@GetMapping("/")
public List<String> home() {
String welcome = "Hi";
welcomes.add(welcome);
return welcomes;
}
}
아래 처럼 리스트나 배열은 [ ] 에 정보가 담겨서 나온다. (자바스크립트는 [ ] 을 배열로 취급하니까)
생성해준 클래스의 객체는 중괄호 { } 에 담겨서 각각의 매개변수가 전달된다. ( 자바스크립트는 { } 를 객체로 취급)
키와 값이 있고 ""로 이어져있는 Json 스타일로 맞춰준다..? 왜 인지는 모르겠다.
주의 할 것 !! 반드시 내가 정의한 클래스의 Getter 가 정의되어 있어야한다.
그리고 게터의 이름도 바꾸면 안됨 get{매개변수명} 형식이어야함
그래서 리스트로 전달해도
@RestController
public class PostController {
private List<PostDto> posts = new ArrayList<>();
@GetMapping("/posts")
public List<PostDto> list() {
PostDto postDto = new PostDto(1L,"Ahshal","Post #1","...");
posts.add(postDto);
return posts;
}
테스트 코드 통과!
@WebMvcTest
class PostControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
void list() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/posts"))
.andExpect(status().isOk())
.andExpect(content().string(
containsString("Post #1")));
}
}
'개발공부하며 느낀 인생 공부' 카테고리의 다른 글
조급함을 버리니 다 감사하다[20220826-TIL] (1) | 2022.08.26 |
---|---|
기준점 잡기 와 실행력[20220825 TIL] (0) | 2022.08.25 |
매너리즘을 경계하자 [20220824 TIL] (0) | 2022.08.24 |
개발공부? 이거만 하면 됩니다 : 자의식 해체[메가테라 9주차 주간회고] (0) | 2022.08.19 |
다짐을 100번해도 어려운건 어렵다.[20220819 TIL] (0) | 2022.08.19 |
댓글