팀프로젝트를 하다보면 프론트엔드와 백엔드를 나눠서 작업하는데 이때 백엔드를 작업해보니 결과값을 보지 않고 작업을 해야해서 나중에 branch를 합쳐 결과를 확인해보니 에러가 발생하여 다시 백엔드를 수정해야 하는 불편함이 있었다. 이를 CURL을 사용하여 극복할 수 있다.
curl -x -d 를 사용하여 post 요청/응답 테스트를 하는데 -d로 데이터를 넣어보았다.
curl -X POST -d "name=ingoo&subject=hi&content=내용" http://localhost:3000
post 요청/응답을하는데 데이터는 "name=ingoo&subject=hi&content=내용" 이고 주소는 post요청을 받을 주소는 http://localhost:3000란 내용입니다.
이 내용을 req.body로 찍어보면
이런식으로 -d의 내용이 객체로 출력된것을 확인할 수 있습니다.
이때 body.parser가 없으면 req.body를 해석할 수 없어 undefined가 뜨기때문에 반드시
이코드를 넣어주어서 req.body 내용을 해석할 수 있도록 해야한다.
이제 여기서 JSON.stringify(req.body) 를 사용해서 curl -x -d로 요청을 해보면 데이터 타입을 객체에서 string으로 변경된것을 확인할 수 있습니다.
이제 req.headers의 내용을 조작해서 보내는 연습을 해보았는데
req.headers를 출력해보면
이런 결과값이 나온다 이때 content-type이 'application/x-www-form-urlencoded'인것을 볼 수 있는데
이 코드가 req.headers의 content-type이 'application/x-www-form-urlencoded'일때만 실행된다고 보면 된다.
그럼 이때 req.headers의 content-type을 'application/x-www-form-urlencoded'이 아닌 "Content-type:application/json"으로 요청할 경우에는
이 코드를 추가해서 "Content-type:application/json"인 경우에 req.body를 읽을 수 있도록 합니다.
app.use(express.json()) 코드는 미들웨어 요청 body영역에 있는 String을 객체로 변환시키는 작업을 해줍니다.
이제 "Content-type:application/json"으로 요청을 해보면
결과값이 잘 출력됩니다.
CURL보다 간편하고 사용하기 쉬운것이 "Postman"입니다.
정의
Postman은 개발한 API를 테스트하고, 테스트 결과를 공유하여 API 개발의 생산성을 높여주는 플랫폼입니다.
설치하기
// 사용법은 다음에 자세히..