파이썬 함수 문법처럼 매개변수에 직접 타입 선언이 가능하다.유저 닉네임으로 유저 정보를 조회하는 API가 있다고 해보자.users/{user_nickname} 의 경로를 가지고, 당연히 user_nickname는 str 타입이다.그런데 내 정보만 보기 위해 users/
Union 을 통해 유효성검사를 할 수 있다.위에서 매개변수로 받은 q에 대해 추가적인 검증을 할 수 있다.typing 패키지의 Annotated 클래스를 사용한다.(3.9 이하에선 typing_extensions 패키지에서 가져온다.)Annotated 클래스는 자세한
경로 매개변수는 말 그대로 URL 경로에서 쓰이는 매개변수이다.@app.get("/items/{item_id}")여기선 {item_id} 부분이 경로매개 변수가 되는 것이다.경로 매개변수도 쿼리 매개변수와 마찬가지로 유효성 검증 및 메타데이터를 추가할 수 있다.gt g
django에서 했던 것과 크게 다르지 않다.
FastAPI에서는 HTTP 응답 상태코드를 직접 지정해줄 수 있다.@app.get("/items/{item_id}", status_code=201)이 부분이 HTTP 응답 코드를 지정하는 부분이다.get 메소드는 제대로 받았다면 상태코드 200으로 응답하는데, 201
Docker을 실행하고 아래의 명령어를 입력해준다.Dockerfile을 작성할때, main.py의 구성에 주의해야한다.내 main.py에는 같은 디렉토리에 있는 domain 을 import하는 구조로 되어있었는데,myapp 디렉토리에서 uvicorn main:app -
Dockerfile 의 명령줄에서 포트번호를 8000으로 지정했다.여기서 지정한 포트번호는 Docker의 포트번호를 말하는 것이다.이 상태로 그냥 컨테이너를 올려주면 서버에 접속이 불가능하다.따라서 외부에서 접속가능한 포트와 내부의 포트를 연결하면서 컨테이너를 올려야한
그냥 배포까지만 하더라도 제대로 동작했으나, 도메인을 구매하고 HTTPS를 적용시키자 다음과 같은 오류가 발생했다.
FastAPI로 만든 애플리케이션을 Docker, AWS를 활용하여 배포한다.Docker 이미지 빌드하기위 포스팅을 참고한다.Docker Desktop를 쓴다면 Push to Hub로 간단하게 허브에 올릴 수 있다.CMD 환경이라면 아래의 명령어로 가능하다.중요한 점은