빠르게 결론부터 말하자면 원인은 엔드포인트에 있다.엔드포인트 마지막에 / 를 붙이면 307 Temporary Redirect를 한다. 이유는 이러하다.@app.post("/test/")async def test(): return {"message": "Success"}위와 같이 엔드포인트를 정의 했을 경우/test는 정의된 경로가 아니므로, FastAPI가 /test/로 자동 Redirect하면서 307 응답을 보낸다.따라서 엔드포인트 마지막에 /만 없어지면 문제를 해결할 수 있다.
window 환경에서 fastapi를 통해 개발하다 보면 이상하게 터미널이 먹통이 되어서 ctrl + c를 눌러도 서버가 꺼지지 않고 말을 안들을 때가 있다.이게 문제가 뭐냐면 터미널을 강제 종료할 경우 서버가 종료되지 않은 상태로 유지가 된다. 다시 터미널을 켜서 로컬 서버를 다시 올려도 현재 마운트 되고 있는 서버는 이전 서버라 수정 사항이 반영되지 않는 어이없는 상황이 발생한다. 개발하다 너무 불편해서 구글링을 해본 결과 나와 비슷한 이슈를 겪고있는 사람이 정말 많았고,그렇게 알게 된 해결방법 두 가지를 공유한다.1. 터미널을 통해 작업중인 python 종료이 방법은 터미널에서 명령어를 통해 현재 실행중인 python 프로그램을 모두 종료하는 방법이다.사실 현재 사용중인 8000번 포트를 종료시키는..
Fast-API 공식문서를 보며 스터디를 하는데 서버를 구동시키는 부분에서 문제가 생겼다. 분명 공식문서 절차대로 실행했음에도 불구하고 uvicorn이 실행되지 않는것을 볼 수 있다. 반면 mac을 통해 진행해보면 공식문서 절차대로 따라하면 서버가 구동되는 것을 볼 수 있다.window 환경에서만 일어나는 문제같다. 해결방법은 2가지가 있다. 첫 번째, 해결 방법1. main.py 하단에 해당 코드 작성 if __name__ == '__main__': uvicorn.run('main:app', reload=True) 2. main.py를 직접 실행>> python main.py정상적으로 실행됨을 확인할 수 있다. 두 번째, 해결 방법1. python -m uvicorn main:..