YS's develop story
(RP2기 4주차 과제 - part 2) Node js 를 활용하여 서비스에 필요한 rest api 설계 및 구현 본문
(RP2기 4주차 과제 - part 2) Node js 를 활용하여 서비스에 필요한 rest api 설계 및 구현
Yusang 2021. 2. 1. 09:04
지금까지 설계한 api는 아래와 같습니다. (수정)
피드백 내용 정리:
1. url은 그 계층 구조가 명확해야 합니다.
/cafe/:cafeid
/cafe/:cafeid/review
2. get, post, patch와 같이 메서드 동사를 url에 붙이지 않아도 됩니다.
메서드가 이미 그 역할을 명시해 주고 있기 때문이죠.
/getcafe/:cafeid -> /cafe/:cafeid
3. Body에는 DB에 저장되는 실제 데이터를 넣는 것이 일반적이고(가령 회원정보를 저장할 때 필요한 데이터들)
특정 카페를 식별해야 하는 경우는 path variable을 사용합니다.
4. Body에 들어오는 모든 데이터들은 개발자가 원하는 데이터만 들어올 수 있도록 validation이 있어야 합니다.
ex) 회원 가입할 때 입력하는 아이디에는 -1과 같은 값이 들어올 수 없도록 제한해야 함.
Path Variable
Path Variable이란 데이터를 넘기는 방법 중의 하나로 경로를 변수처럼 사용하는 것을 의미합니다.
Path Variable은 아래와 같은 형태로 구성됩니다.
/cafe/:cafeId
/cafe/2 = cafeId가 2인 카페 조회
Rp2기 ) Query String 과 Path Variable 비교 및 활용
설계한 API 중 GET, POST, PATCH DELETE 메서드를 활용한 API를 각각 한 개씩 정리.
1.
Get메서드를 활용하여 Path Variable로 특정 값을 url로 넘겨받은 다음,
값에 따라 각각 다른 정보를 제공하는 형태로 api를 설계.
cafeRoute.js
cafeController.js
cafeDao.js
url로 입력받은 값이 MySQL쿼리에서? 에 입력되게 됩니다.
Postman에서 결과를 확인해 보면 아래와 같습니다..!
해당 페이지 api 명세서
처음에는 Body에 카페 아이디를 넘겨주어서 특정 카페를 조회하는 방식인 줄 알았는데
완전 틀린 방법이었습니다. Path variable을 통해서 카페 id를 넘겨주는 방식입니다.
2.
Post메서드를 활용하여 새로운 데이터를 생성하는 API
cafeReviewRoute.js
cafeReviewController.js
Body로 content, cafeStar, userId의 내용을 사용자로부터 입력받게 되고
cafeId는 Path variable로서 url로 변수 값을 입력받게 됩니다.
cafeReviewDao.js
Body에서 입력받은 값과 path variable를 통해 입력받은 값이 MySQL의 INSERT쿼리문을 활용해 데이터에 저장하게 됩니다.
Postman에서 확인을 해 봅시다!
cafeId는 아래와 같이 path variable로 입력을 받고,
나머지 데이터 값을 Body를 통해 사용자가 입력하는 방식입니다.
성공적으로 리뷰를 작성한 후 , DB를 확인해 보면 아래와 같이 데이터가 등록된 것을 확인할 수 있습니다.
해당 페이지 api 명세서
part 3에서 이어서 작성하도록 하겠습니다.
'기타 > 라이징프로그래머 2기' 카테고리의 다른 글
(RP2기 5주차 과제 - part 1) AWS RDS 생성하고 외부 접속 하기. (0) | 2021.02.02 |
---|---|
(RP2기 4주차 과제 - part 3) Node js 를 활용하여 서비스에 필요한 rest api 설계 및 구현 (2) | 2021.02.01 |
(RP2기 4주차 과제 - part 1) Node js 를 활용하여 서비스에 필요한 rest api 설계 및 구현 (0) | 2021.01.31 |
(RP2기 3주차 과제 - part 4) 설계한 ERD 바탕으로 쿼리 작성 (0) | 2021.01.26 |
(RP2기 3주차 과제 - part 3) 애플리케이션 ERD 설계 (2) | 2021.01.25 |