Spring Framework

타임라인서비스) Controller 만들기

na_o 2021. 7. 21. 21:08
728x90
/*MemoController.java*/

package com.sparta.week03.domain;

...

@RestController
@RequiredArgsConstructor
public class MemoController {
    private final MemoRepository memoRepository;
    private final MemoService memoService;

    @PostMapping("/api/memos")
    						//@RequestBody를 꼭 넣어줘야 함!!//
                            //POST방식으로 Request할 때 JSON 데이터를 받아올 수 없음
    public Memo createMemo(@RequestBody MemoRequestDto requestDto) {
        Memo memo = new Memo(requestDto);
        return memoRepository.save(memo);
    }

    @GetMapping("/api/memos")
    public List<Memo> getMemo() {
        return memoRepository.findAllByOrderByModifiedAtDesc();
    }

    @PutMapping("/api/memos/{id}")
    public Long updateMemo(@PathVariable Long id, @RequestBody MemoRequestDto requestDto) {
        memoService.update(id, requestDto);
        return id;
    }

    @DeleteMapping("/api/memos/{id}")
    public Long deleteMemo(@PathVariable Long id) {
        memoRepository.deleteById(id);
        return id;
    }

}

 

- URL 테스트 결과

createMemo 메소드의 매개변수에 @RequestBody를 빼먹으면 에러남
not-null인 컬럼에 null값이 들어갔다는 내용인 것 같은 에러가 뜸. @RequestBody가 없어서 Request 시 모두 null값이 보내지는 것 같다
정상적으로 실행된 POST 방식
GET
UPDATE
DELETE

'Spring Framework' 카테고리의 다른 글

Javascript 기초 - 2  (0) 2021.07.22
Javascript 기초 - 1  (0) 2021.07.21
타임라인서비스) Service 만들기  (0) 2021.07.21
타임라인서비스) Repository 만들기  (0) 2021.07.21
API - POST, PUT, DELETE  (0) 2021.07.21