안녕하세요:) 저번 시간에 이어서 SpringBoot & JPA로 간단한 API 만들기 (2-2)
시작하겠습니다. 저번 글을 보지 않으셨다면 따라올 수 없기에 전 게시글 링크를 아래에 남겨드립니다.
Controller & DTO 구현
몇 가지를 수정하고 추가해야 하는데요
우선 src/test/java/com/zecgwon/webservice 경로에
dto 패키지를 만들어주시고요 그 하위에 posts 패키지를 하나 더 만들어줍니다.
패키지 안에 PostsSaveRequestDto.java 클래스를 만들어줍니다.
package com.zecgwon.webservice.web;
import com.zecgwon.webservice.domain.posts.PostsRepository;
import com.zecgwon.webservice.dto.posts.PostsSaveRequestDto;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
// @RestController 는 @ResponseBody 를 모든 메소드에 적용 해준다.
// hello 메소드의 결과는 HelloWorld 라는 문자열을 JSON 형태로 반환한다.
@RestController
@AllArgsConstructor
public class WebRestController {
private PostsRepository postsRepository;
@GetMapping("/hello")
public String hello() {
return "HelloWorld";
}
@PostMapping("/posts")
public void savePosts(@RequestBody PostsSaveRequestDto dto){
postsRepository.save(dto.toEntity());
}
}
클래스 생성이 끝나셨다면 우선 저번 시간에 추가했던
WebRestController.java를 수정을 해줍니다.
package com.zecgwon.webservice.dto.posts;
import com.zecgwon.webservice.domain.posts.Posts;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
public class PostsSaveRequestDto {
private String title;
private String content;
private String author;
public Posts toEntity() {
return Posts.builder()
.title(title)
.content(content)
.author(author)
.build();
}
}
좀 전에 만들었던 PostsSaveRequestDto.java 클래스 코드입니다.
Postman + 웹 콘솔로 검증
application.properties를 application.yml로 변경해줍니다.
spring:
h2:
console:
enabled: true
변경하신 application.yml 에 위와 같이 코드를 입력해주세요.
Local 환경에서는 DB를 H2를 사용하기 때문에 SpringBoot에서 H2를 활성화시켜주는 옵션을 추가하는 거예요!
모두 작성이 되셨다면 SpringWebserviceApplication.java를 실행해줍니다.
실행하신 후에 브라우저에서 http://localhost:8080/h2-console를 입력합니다.
이렇게 H2 DB를 관리할 수 있는 웹 클라이언트에 접속할 수 있습니다.
connect 버튼을 클릭하여 접속한 후에, 조회 쿼리를 실행합니다.
그런데 이런 저처럼 디비 연결에 실패하는 분이 계실 거예요 ㅜㅜ
에러 아래 링크의 글을 참고해주세요!
실전
오류가 해결되었으니 이제 접속을 해볼까요?
앱을 실행해주시고 http://localhost:8080/h2-console 브라우저로 접속해줍니다!
쿼리를 한번 날려보죠!
SELECT * FROM POSTS;
역시나 아무것도 없지요 ㅎㅎㅎ
포스트맨으로 데이터를 한번 전송해봅시다!!
포스트맨이 없으신 분은 아래 링크에서 받아주세요~
http://localhost:8080/posts
{
"title": "테스트 타이틀",
"content": "테스트 본문",
"author": "테스터"
}
요청을 보내봅시다!
DB에 정상적으로 데이터가 입력된 걸 확인할 수 있습니다!
저번 시간에 했던 테스트 코드를 신뢰할 수 있게 되었습니다 ㅎㅎㅎㅎ
분량이 길기에 한 번 더 끊어서 가도록 하겠습니다!
방문해주신 구독자분들 감사합니다.
'SpringBoot' 카테고리의 다른 글
(3-1) - 스프링부트로 웹 서비스 출시하기 : SpringBoot & Handlebars로 화면 만들기 (1) | 2021.02.14 |
---|---|
(2-3) - 스프링부트로 웹 서비스 출시하기 : SpringBoot & JPA로 간단 API 만들기 (0) | 2021.02.09 |
SpringBoot H2 DB 연결 에러 (0) | 2021.02.09 |
(2-1) - 스프링부트로 웹 서비스 출시하기 : SpringBoot & JPA로 간단 API 만들기 (0) | 2021.02.07 |
(1) - 스프링부트로 웹 서비스 출시하기 (0) | 2021.02.06 |
댓글