컴퓨터를 포맷한 뒤로 그동안의 작업물들이 다 사라진 관계로 집에서는 프로그래밍을 하지 않았습니다. 어쩔 수 없이 github에 올라간 프로젝트들이라도 정리해보려고 했는데 위와 같은걸 찾아버렸어요.
Todo : RESTful API
과거의 저는 방법을 알지 못하여 한참을 고민만 하다가 끝내 완성하지 못했나 봐요. 그런 과거를 위해 해답을 주려고 합니다.
목표 : 게시글 목록 전달
클라이언트쪽에서 요청이 오면 게시글 목록을 전달해주고 싶었습니다.
아래는 티스토리 게시글 목록 API 예시입니다. GET 요청을 보내면 JSON으로 데이터 목록을 쫘르륵 보내주고 싶었습니다.
{
"tistory": {
"status": "200",
"item": {
"url": "http://oauth-test.tistory.com",
"secondaryUrl": "",
"page": "1",
"count": "10",
"totalCount": "181",
"posts": [
{
"id": "201",
"title": "테스트 입니다.",
"postUrl": "http://oauth-test.tistory.com/201",
"visibility": "0",
"categoryId": "0",
"comments": "0",
"trackbacks": "0",
"date": "2018-06-01 17:54:28"
},
...
]
}
}
}
https://tistory.github.io/document-tistory-apis/apis/v1/post/list.html
GET, POST, PUT, DELETE 등의 HTTP Method를 활용해서 API요청을 하면 제 쪽 서버단에서는 클라이언트가 요청한 작업을 수행해주면 된다는 정보는 알고 있었습니다. 그러면 대체 왜 못했던 걸까요??
@GetMapping("/board/edit/{id}")
public String edit(@PathVariable("id") Long id, Model model) {
BoardDto boardDto = boardService.findById(id);
model.addAttribute("post", boardDto);
return "board/edit.html";
}
제가 접했던 Spring Controller등은 모두 위와 같은 형태를 가졌습니다. 컨트롤러에서 작업을 수행하기 위해 서비스를 부르고 작업이 끝나면 html 페이지 자체를 반환합니다.
네.. 그렇습니다. 저는 항상 페이지를 반환해야된다고 생각했어요. service를 타며 조회된 리스트를 반환하는 예시를 몇 번 못 봤고(책을 따라 하면서 한 번 정도 다루긴 했으나 기억에 남지 않음) 그 외에는 언제나 페이지를 리턴했거든요. 그래서 저 페이지에서 무엇인가를 파싱해서 보내야 되나..?? 말도 안 되는 생각을 하며 시간을 날렸던 기억이 있네요 허허..
요약 : 즉 서비스에서 조회한 결과 자체를 컨트롤러에서 return해주면 된다!!
'web > spring&spring boot' 카테고리의 다른 글
[Spring Boot] @Component에 대한 이해 (0) | 2023.04.03 |
---|---|
[Spring Batch] Spring Batch의 장점 (0) | 2022.02.26 |
[spring boot] 스프링 부트 게시판 페이징 기능 구현하기 (0) | 2021.06.08 |
[spring boot] 스프링 부트 게시판 검색 기능 구현하기 (0) | 2021.06.06 |
[spring boot] 스프링 부트 게시판 글 삭제 구현하기 (0) | 2021.06.05 |