| REST API 구현 과정
- 조회 요청 : /api/articles 또는 /api/articles/{id}
> GET 메서드로 전체, 단일 Article 조회 - 생성 요청 : /api/articles
> POST 메서드로 새로운 Article 생성 - 수정 요청 : /api/articles/{id}
> PACTH 메서드로 특정 Article 내용 수정 - 삭제 요청 : /api/articles/{id}
> DELETE 메서드로 특정 Article 삭제
| REST API 구현
| REST 컨트롤러와 일반 컨트롤러 차이
- REST 컨트롤러 : JSON, 텍스트 데이터 반환
- 일반 컨트롤러 : 뷰 페이지 반환
| GET 구현
- 전체 게시글 조회
GET 메서드를 사용해 localhost:8080/api/articles 로 요청을 보냈는데 에러 응답이 돌아왔습니다. \
이는 GET 요청을 받을 메서드를 만들어 에러를 처리했습니다.
@RestController 어노테이션을 추가해 REST 컨트롤러라는 것을 선언하고
@GetMapping으로 " /api/articles" 주소로 URL 요청을 받습니다.
전체 게시글을 조회해야 하기 때문에 List<Article>로 반환받고
findAll() 메서드를 사용해 DB에 저장된 전체 Article을 가져와 반환합니다.
결과) Talend API Tester를 이용해 GET 요청 보내기
- 단일 게시글 조회
@GetMapping의 URL을 " /api/articles/{id}" 로 수정하고
반환형을 Article로 하여 @PathVariable을 붙여 매개변수로 id를 받아오게 했습니다.
| POST 구현
@PostMapping으로 "/api/articles" 주소로 오는 URL 요청을 받습니다.
수정할 데이터를 dto 매개변수로 받아와 Entity로 변환해 DB에 저장 후 반환합니다.
결과)
| PATCH 구현
@PatchMapping를 사용해 " /api/articles/{id}" 주소로 오는 URL 요청을 받고
매개변수로 요청 URL의 id와 요청 메시지 데이터를 받아와 처리합니다.
- 수정용 Entity를 생성
- DB에 대상 Entity가 있는지 조회
- Entity가 없거나 id가 잘못됐을 때의 예외 처리
- Entity가 있으면 업데이트 후 정상 응답 (200) 전송
결과)
| Delete 구현
URL은 " /api/articles/{id}" 로 전송하며
@DeleteMapping " /api/articles/{id}" URL 요청을 받습니다.
ResponseEntity에 Article을 실어 보내는 메서드를 만들고 URL의 id를 매개변수로 받습니다.
결과)
'JAVA > 코딩자율학습-스프링부트' 카테고리의 다른 글
[코딩 자율학습 스프링부트] 12장 서비스 계층과 트랜잭션 (1) | 2024.12.09 |
---|---|
[코딩 자율학습 스프링부트] 10장 REST API와 JSON (0) | 2024.12.03 |
[코딩 자율학습 스프링부트] 9장 CRUD와 SQL 쿼리 종합 (0) | 2024.12.02 |
[코딩 자율학습 스프링부트] 8장 게시글 수정하기 : Delete (0) | 2024.12.01 |
[코딩 자율학습 스프링부트] 7장 게시글 수정하기 : Update (0) | 2024.11.30 |