Django
Django - HTTP Response Redirection
김지훈_
2022. 2. 2. 15:42
API를 호출하면 데이터와 함께 코드를 응답받는다.
응답이 정상이면 200번대,
리다이렉션이 필요하면 300번대,
클라이언트에서 잘못된 요청을 하면 400번대,
서버 로직에 오류가 있으면 500번대 코드를 응답한다.
물론 서버에서 예외처리를 제대로 하지 않으면 서버 로직에 오류가 있어도 400번대를 응답하기도 한다. 이 부분은 서버 개발자가 API 요청이 들어왔을 때 잘못 요청이 되었으면 로직 돌기전에 바로 쳐내도록 설계해야한다.
오늘 기록할 것은 리다이렉션이 필요한 300번대의 경우이다.
리다이렉션이 필요한 경우는 크게 2가지이다.
1. API URL이 변경된 경우
2. DB 변경이 되는 API를 호출한 뒤, 새로고침시 동일 API가 또 날아가는 것을 방지하기 위해 다른 API로 리다이렉트 하는 경우
리다이렉트를 응답 메시지에 담는 방법은 다음과 같이, URL의 주소를 리스폰스 헤더에 Location 값으로 넘겨주면 된다.
return Response(headers={'Location': 'swe/v1/movies'}, data=result, status=status.HTTP_302_FOUND)