본문 바로가기
SpringBoot

(2-2) - 스프링부트로 웹 서비스 출시하기 : SpringBoot & JPA로 간단 API 만들기

by ZEC 2021. 2. 9.

안녕하세요:) 저번 시간에 이어서 SpringBoot & JPA로 간단한 API 만들기 (2-2)

시작하겠습니다. 저번 글을 보지 않으셨다면 따라올 수 없기에 전 게시글 링크를 아래에 남겨드립니다.

 

 

(2-1) - 스프링부트로 웹 서비스 출시하기 : SpringBoot & JPA로 간단 API 만들기

안녕하세요:) 오늘은 SpringBoot & JPA로 간단한 API를 만들어 볼 거예요! 이전에 진행했던 글을 먼저 보셔야 이후 진도를 따라갈 수 있어요 아래 링크 남겨드립니다. (1) - 스프링부트로 웹 서비스 출

devzec.tistory.com

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 버튼을 클릭하여 접속한 후에, 조회 쿼리를 실행합니다.

 

그런데 이런 저처럼 디비 연결에 실패하는 분이 계실 거예요 ㅜㅜ

에러 아래 링크의 글을 참고해주세요!

 

 

SpringBoot H2 DB 연결 에러

현재 스프링 부트를 공부하면서 h2 디비를 연결하여 테스트를 진행하려 하였으나 아래처럼 연결이 안 되는 불상사가 생겼다 아무리 구글링을 해봐도 딱히 해결되는 게 없었다. 뭐 h2디비를 다시

devzec.tistory.com

 

실전


오류가 해결되었으니 이제 접속을 해볼까요?

앱을 실행해주시고 http://localhost:8080/h2-console 브라우저로 접속해줍니다!

쿼리를 한번 날려보죠!

 

SELECT * FROM POSTS;

 

역시나 아무것도 없지요 ㅎㅎㅎ

포스트맨으로 데이터를 한번 전송해봅시다!!

포스트맨이 없으신 분은 아래 링크에서 받아주세요~

 

 

Postman | The Collaboration Platform for API Development

Postman makes API development easy. Our platform offers the tools to simplify each step of the API building process and streamlines collaboration so you can create better APIs faster.

www.postman.com

 

http://localhost:8080/posts

{
    "title": "테스트 타이틀",
    "content": "테스트 본문",
    "author": "테스터"
}

요청을 보내봅시다!

 

DB에 정상적으로 데이터가 입력된 걸 확인할 수 있습니다!

저번 시간에 했던 테스트 코드를 신뢰할 수 있게 되었습니다 ㅎㅎㅎㅎ

 

분량이 길기에 한 번 더 끊어서 가도록 하겠습니다!

방문해주신 구독자분들 감사합니다.

댓글