http 메소드 post
ex. 회원가입
post는 url이 아니고 숨겨서 body에 담아서 전송하게 된다.
웹 브라우저에서 확인할 수 없고, Postman에서 테스트를 돌려서 확인할 수 있다.
Postman API Platform | Sign Up for Free
Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.
www.postman.com
pc에 설치해서 사용하는 것을 권장한다. 웹 버전에서는 불가능한 기능이 많기 때문!
Postman
여러 메서드(GET, POST, PUT, PATCH 등)를 테스트할 수 있고, 탭도 여러개 키고, 값도 html 형식으로 예쁘게 보여준다.
기존 웹 브라우저는 pretty print를 적용해야 요모양인데...!!
body 부분에 숨겨져서 전송되는 데이터 post를 확인할 수 있다.
데이터 소통 방법
URL, Query String, Body
body 데이터 사용하기
`req.body.키값`
json 형태로 사용하기 (프론트, 백 둘다)
app.post("/test", (req, res) => {
//body에 숨겨져서 들어온 데이터를 화면에 뿌려준다.
res.json(req.body.message);
});
유튜브 데모 업그레이드
post를 활용해서 유튜버를 추가할 수 있도록
<API 설계 URL, method>
- 개별 유튜버 조회 GET `/youtuber/:id` : id로 map에서 객체를 찾아서, 그 객체의 정보를 뿌려줌
- req : params.id ← map 에 저장된 key 값을 전달
- res : map에서 id로 객체를 조회해서 전달
- 유튜버 등록 POST `/youtuber`
- req : body ← channelTitle, sub = 0, videoNum = 0 신규 유튜버 정보 전달
- DB에 저장 put
- res : "channelTitle님, 유튜버 등록이 완료되었습니다."
key값 고도화
map에 순서대로 삽입되게 하려면, key 값을 idx라는 변수로 할당한뒤, 증가연산자로 순차적으로 출력하게 한다. 후위보다 전위 연산자를 사용하였다.
let db = new Map();
let idx = 1;
db.set(idx, youtuber1);
db.set(++idx, youtuber2);
db.set(++idx, youtuber3);
app.use(express.json()); //http 외 모듈인 '미들웨어':json 설정
app.post("/youtuber", (req, res) => {
//Map(db)에 저장(put)
db.set(++idx, req.body);
res.json({
message: `${req.body.channelTitle}님, 유튜버 등록이 완료되었습니다!`, //db.get(idx).channelTitle
});
});
전체 조회
<API 설계 URL, method>
- 전체 유튜버 조회 GET `/youtubers`
- req : X
- res : map 전체조회
- 개별 유튜버 조회 GET `/youtubers/:id` : id로 map에서 객체를 찾아서, 그 객체의 정보를 뿌려줌
- req : params.id ← map 에 저장된 key 값을 전달
- res : map에서 id로 객체를 조회해서 전달
- 유튜버 등록 POST `/youtubers`
- req : body ← channelTitle, sub = 0, videoNum = 0 신규 유튜버 정보 전달
- DB에 저장 put
- res : "channelTitle님, 유튜버 등록이 완료되었습니다."
app.get("/youtubers", (req, res) => {
res.json({
message: "test",
});
});
☑️ 배운 점
postman 사용법
body로 json 값 사용하기
POST 사용법. 실제 DB에 저장하는 과정도 하고 싶다.