Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ChatGPT
- AI 경진대회
- 편스토랑 우승상품
- hackerrank
- 데이콘
- 백준
- Real or Not? NLP with Disaster Tweets
- 금융문자분석경진대회
- 파이썬
- Git
- 맥북
- Docker
- gs25
- 프로그래머스
- 캐치카페
- ubuntu
- 프로그래머스 파이썬
- github
- 코로나19
- 우분투
- 편스토랑
- SW Expert Academy
- 자연어처리
- leetcode
- Baekjoon
- PYTHON
- dacon
- programmers
- 더현대서울 맛집
- Kaggle
Archives
- Today
- Total
솜씨좋은장씨
[FastAPI] 307 temporary redirect 해결 방법 (Python) 본문
728x90
반응형
FastAPI로 API를 제작하고 테스트 하면서
나는 분명히 한 번만 요청했는데 제대로 요청을 받았다는 200OK 응답이 나오기 전에
> 307 temporary redirect
위와 같이 307 temporary redirect 라는 메세지가 한 번 나오고 나서 200OK가 나올 경우가 있습니다.
이 문제의 원인은 본인의 코드에서 endpoint 설정하는 부분을 보면 알 수 있습니다.
@app.post(path="/api/v1/testAPI/", response_model=TestResponse)
endpoint 마지막에 "/" (슬래쉬) 가 붙어 있을 경우 redirect 하도록 되어있기 때문에 발생합니다.
_starlette/routing.py:601_
if scope["type"] == "http" and self.redirect_slashes:
if not scope["path"].endswith("/"):
redirect_scope = dict(scope)
redirect_scope["path"] += "/"
해결방법은 두 가지 입니다.
방법 1
본인의 코드에서 endpoint 마지막에 붙어있는 슬래쉬를 지워줍니다.
@app.post(path="/api/v1/testAPI/", response_model=TestResponse)
-> @app.post(path="/api/v1/testAPI", response_model=TestResponse)
방법 2
바꿔야할 endpoint가 너무 많다면
app = FastAPI()
app.router.redirect_slashes = False
app 을 생성한 다음 redirect_slashes를 False로 설정해주어 redirect 되지 않도록 하면됩니다.
읽어주셔서 감사합니다.
'Programming > Python' 카테고리의 다른 글
Comments