YS's develop story

(RP2기 4주차 과제 - part 2) Node js 를 활용하여 서비스에 필요한 rest api 설계 및 구현 본문

기타/라이징프로그래머 2기

(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 비교 및 활용

 

Rp2기 ) Query String 과 Path Variable 비교 및 활용

Query String, 쿼리 스트링 활용하기 '건대'라는 글자가 들어가는 특정 카페를 찾기 위해선 어떻게 해야 할까요? 아래와 같이 쿼리스트링을 활용하면 됩니다. cafeRoute.js cafecontroller.js 사용자가 쿼리

yusang.tistory.com

 

설계한 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쿼리문을 활용해 데이터에 저장하게 됩니다.

MySQL ) INSERT INTO문 활용하기

 

MySQL ) INSERT INTO문 활용하기

MySQL  ) INSERT INTO문 활용하기 CafeReview라는 아래와 같은 테이블이 있습니다. reviewId는 Auto inc로 설정되어 있습니다. 이제 INSERT INTO를 활용하여 테이블의 데이터를 추가해 봅시다. reviewId의..

yusang.tistory.com

Postman에서 확인을 해 봅시다! 

cafeId는 아래와 같이 path variable로 입력을 받고, 

나머지 데이터 값을 Body를 통해 사용자가 입력하는 방식입니다.

 

성공적으로 리뷰를 작성한 후 , DB를 확인해 보면 아래와 같이 데이터가 등록된 것을 확인할 수 있습니다.

해당 페이지 api 명세서

 

part 3에서 이어서 작성하도록 하겠습니다.

 

 

Comments