220601_spring_CRUD

Today Jeeho Learned·2022년 6월 1일
0

Spring

목록 보기
3/31
post-thumbnail

POST요청

spring에서 POST 보내는 방식은 정해져있다.

포스트맨을 사용해서 course api에 데이터를 넣어보았다.
Header에서 application/json형태로 데이터 타입을 설정해주고,

body에서 필요한 데이터인 title과 tutor의 이름을 같이 넣어주었다.
이때 "" 이와같은 쌍따음표를 꼭 사용해주어야한다. 그리고 post 요청을 보내니 아래보이는 데이터가 보내졌다.

POST를 통해서 데이터를 생성하고 , GET으로 다시 조회하니 생성한 데이터가 잘 들어갔음을 확인할 수 있다.

PUT요청

@PutMapping("/api/courses/{id}")
public Long updateCourse(@PathVariable Long id, @RequestBody CourseRequestDto requestDto) {
    return courseService.update(id, requestDto);
}

데이터를 수정하는 것이다. api/courses/뒤에 id값이 오는것을 확인할 수 있다.
파라미터로 들어오는 것은 변경하고싶은 아이디와, 변경할 내용이다.
아이디를 받아야하는데, 그냥 Long id로하면 받을수가 없고, @PathVariable이라는 어노테이션을 사용해서 api뒤에 id로 들어간 내용을 변수로 받게 해준다.

이제 확인하려면 처음 get을 통해서 데이터를 조회하고, put을 통해 수정후, 다시 get을 통해서 제대로 수정되었는지를 확인한다.

get을 해보니 아까 넣었던 데이터가 없다. 왜? 내가 사용하는 h2데이터베이스는 서버를 재시작하면 기존에있던 것을 삭제하기 때문이다.놀라지말자~
그럼 왜 1번은 있지? 계속 insert부분에 작성되어있기때문이다.

아이디가 1번인 녀석의 제목과 이름을 다 바꿔보자.
이때 api/course/변경할 id값으로 요청해야한다.

아까 POST했던 방식과 비슷하다. HEADER에서 key값을 content-type으로, value를 application/json으로 만들어주고 body값에 내가 바꿀 값을 넣어준다.

그리고 PUT를 보내면 밑에 변경한 id값이 나온다. 우리는 1번값을 변경해주었으니까 이게 맞다.

다시 get을 통해서 조회하니 내가 변경한 데이터로 잘 수정된것을 확인할 수 있다.

DELETE요청

이제 내가 원하는 id에 해당하는 내용을 삭제해보려고 한다.
controller에서 직접 작성해보았다.

    @DeleteMapping("api/courses/{id}")
    public Long deleteCourse(@PathVariable Long id) {
        courseRepository.deleteById(id);
        return id;
    }

똑같이 api뒤에 아이디값을 넣어주고, pathvariable 어노테이션을 사용한다.
그리고 쿼리를 날리는 부분은 repository를 사용해서 deletebyid를 찾아서 삭제할 아이디를 넣어준다. return은 id로 돌려준다.

profile
기록해야 (살아)남는다 !

0개의 댓글