포스트맨 설치
https://www.postman.com/downloads/
Download Postman | Get Started for Free
Try Postman for free! Join 30 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.
www.postman.com
POSTMAN으로 API 호출해보기
POSTMAN은 RESTful API 테스트를 위한 플랫폼으로, 다양한 HTTP 요청을 보내고 응답 결과를 쉽게 확인할 수 있도록 도와준다. 또한, API 요청과 응답 결과를 저장하고 공유할 수 있는 기능도 제공한다.
이 글에서는 이전에 Django로 구현한 RESTful API(해당 링크 이후 글 부터)를 POSTMAN으로 호출해보려고 한다.
POSTMAN에 접속해 HTTP Request 창을 열어본다.
위와 같은 화면이 노출된다. 여기서 상세페이지에 대한 PUT 요청을 진행해보고자 한다.
django 서버에서는 위와 같은 화면으로, 특징으로는 로그인하지 않거나 해당 질문 레코드의 owner가 아니라면 PUT, DELETE 같은 요청을 할 수 없다.
이제 POSTMAN에 위 URL과 함께 PUT 요청을 보내보자.
위 이미지와 같이 HTTP Method는 PUT으로 바꿔준 뒤 링크를 붙여넣는다. 또한 Headers 항목에 진입해 Key와 Value에 각각 'Content-Type', 'application/json'을 선택해준다.
Body에는 위와 같은 폼에 담아 전송했다.
{
"detail": "Authentication credentials were not provided."
}
당연하게도 돌아온 메시지는 403 에러코드와 함께 권한이 없다는 뜻의 메시지였다. 로그인 정보를 전달해주지 않았기 때문이다. 그 로그인 정보는 어떻게 전달해야할까?
위 이미지는 Django 서버에서 로그인 했을 때와 하지 않았을 때의 쿠키를 비교한 것이다. 2개의 차이는 바로 'sessionid'라는 값으로, 해당 쿠키가 로그인 정보를 나타낸다는 것을 알 수 있다.
sessionid에 해당하는 Value값을 복사해 로그인 정보를 함께 넣어 요청을 보내보자.
Header에 key는 'Cookie', Value에는 'sessionid={복사한 sessionid의 value값}'을 넣어 다시 한번 요청을 보내본다.
{
"detail": "CSRF Failed: CSRF cookie not set."
}
이번에는 CSRF 토큰이 없다는 메시지가 출력된다.
Django 서버에서 쿠키를 살펴봤을 때, csrf token이라는 쿠키가 있었다는 것을 기억하는가? sessionid의 value값을 가져올 때처럼 csrf token의 value를 다시 가져와 header에 추가해주자.
X-CSRFToken, Cookie 두 가지를 추가해주었다. 이후 Send를 눌러 요청을 보내면,
{
"id": 11,
"owner": "user1",
"question_text": "POSTMAN에서 보냄",
"pub_date": "2024-10-11T02:20:09.054461Z"
}
위와 같은 메시지가 노출되며 200 응답 코드가 돌아오는걸 확인할 수 있다.
Django 서버에서도 정상적으로 반영된 것을 확인할 수 있다.
'Minding's Programming > Knowledge' 카테고리의 다른 글
[Snowflake] Snowflake 알아보기 (설치 방법) (0) | 2024.10.31 |
---|---|
[Docker] Docker의 개념 및 기본 실행 명령어 (1) | 2024.10.28 |
[Python] 딕셔너리 max value에 대한 key 찾기 (0) | 2024.10.08 |
[Seaborn/WordCloud] Seaborn과 Wordcloud를 활용한 시각화 (0) | 2024.10.07 |
[코딩 테스트/Python] 코딩 테스트에서 자주 사용되는 Python 표준 라이브러리 (1) | 2024.10.01 |