[코스파] 스프링 기초 2주차-3

2021. 12. 5.·강의정리들/[2021] Spring Boot
목차
  1. API : 클라이언트와 서버 간의 약속
반응형

2주차 내용-3

API : 클라이언트와 서버 간의 약속

REST : 주소에 명사, 요청방식에 동사를 사용함으로써 의도를 명확히 드러냄

Ø  생성 POST / 조회 GET / 수정 PUT / 삭제 DELETE

Ø  주소에 들어가는 명사는 복수형을 사용하고, 동사는 사용하지 않는다.

Ø  GET / courses     PUT/ courses /2        와 같은 방식

@RequiredArgsConstructor
@RestController
public class CourseController {
private final CourseRepository courseRepository;
@GetMapping("/api/courses")
public List<Course> getCourses() {
return courseRepository.findAll();
}
}

^ controller 패키지 내 CourseController.java 생성

실행 후 http://localhost:8080/api/courses 접속 또는 ARC 로 확인> 아래 화면처럼 API 확인가능

Ø  POST : 생성요청

@PostMapping("/api/courses") // PostMapping을 통해서, 같은 주소라도 방식이 다름을 구분합니다.
public Course createCourse(@RequestBody CourseRequestDto requestDto) {
// @RequestBody : 컨트롤러에서 요청을 받는 것을 표시하는 어노테이션
    // requestDto 는, 생성 요청을 의미합니다.
    // 강의 정보를 만들기 위한 강의 제목과 튜터 이름을 가져와줍니다.
    // 저장하는 것은 Dto가 아니라 Course이니, Dto의 정보를 course에 담아야 합니다.
    // 잠시 뒤 새로운 생성자를 만듭니다.
    Course course = new Course(requestDto);
    // JPA를 이용하여 DB에 저장하고, 그 결과를 반환합니다.
    return courseRepository.save(course);
}

^ CourseController.java 에 추가

public Course(CourseRequestDto requestDto) {
    this.title = requestDto.getTitle();
    this.tutor = requestDto.getTutor();
}

^Course.java 에 생성자 추가 

^ POST 방식의 경우 동일하게 ARC 실행 시 위와 같은 오류 발생 (400)

POST 의 경우 반드시 아래와 같은 규칙 적용해야 함.

HEADERS >    Name : Contetnt-Type >    Value : application/json
위 방식으로 POST 실행 후 GET으로 확인 시 정상적으로 추가된 모습 

Ø  PUT : 데이터 변경

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

^ CourseController.java 아래에 추가

Ø  {id} : 변형되서 들어오는 값을 의미

          Id 값을 넣어주기 위해 @PathVariale 사용

PUT 도 POST 와 마찬가지로 BODY 에 내용을 적고 API 실행
변경된 모습을 볼 수 있다.  (임민영 > 남병관)

Ø  DELETE

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

'강의정리들 > [2021] Spring Boot' 카테고리의 다른 글

[코스파] 스프링 기초 4주차-2  (0) 2022.01.02
[코스파] 스프링 기초 4주차-1  (0) 2022.01.02
[코스파] 스프링 기초 3주차  (0) 2022.01.01
[코스파] 스프링 기초 2주차-2  (0) 2021.12.05
[코스파] 스프링 기초 2주차-1  (0) 2021.12.03
  1. API : 클라이언트와 서버 간의 약속
'강의정리들/[2021] Spring Boot' 카테고리의 다른 글
  • [코스파] 스프링 기초 4주차-1
  • [코스파] 스프링 기초 3주차
  • [코스파] 스프링 기초 2주차-2
  • [코스파] 스프링 기초 2주차-1
keartt
keartt
shalpha_2@naver.com
주니어 탈출일기 🐽
shalpha_2@naver.com
  • keartt
전체
오늘
어제
  • 전체보기
    • CS & 알고리즘
      • CS (컴과학)
      • 알고리즘
      • 백준
    • Spring
      • SpringBoot (JPA)
      • Spring (Legacy)
    • Server
      • Linux
      • Docker
    • Java
      • Design Pattern
    • PostgreSQL
    • GIS (공간정보)
    • 오류정리
    • Git
    • JavaScript
      • Node.js
      • React
    • Tool
      • IntelliJ
      • MacOS
      • VSCode
      • Eclipse
      • Other
    • 강의정리들
      • [2023] FullStack
      • [2022] Spring Boot
      • [2021] Spring Boot

인기 글

태그

코딩애플
이분탐색
브루트포스
구간합
반응형
hELLO· Designed By정상우.v4.6.1
keartt
[코스파] 스프링 기초 2주차-3

개인정보

kearttshalpha_2@naver.com계정관리

운영중인 블로그

주니어 탈출일기쓰기블로그 관리

이동링크목록

  • 티스토리 홈
  • 피드
  • 로그아웃
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.