FastAPI/Tutorial - User Guide
[ FastAPI ] 응답 상태 코드
[ FastAPI ] 응답 상태 코드
2021.09.25응답 모델을 명시한 것처럼, 모든 경로 동작에 매개변수 status_code 를 사용하여 응답에 사용되는 HTTP 상태 코드를 선언할 수 있습니다: @app.get() @app.post() @app.put() @app.delete() 기타 등등. 참고 status_code 는 모든 매개변수 및 바디와 같이, 경로 동작 함수가 아닌 "데코레이터" 메서드 ( get , post , 기타 등등) 의 매개변수인 것을 잊지마시기 바랍니다. status_code 는 HTTP 상태 코드가 담겨 있는 숫자를 전달 받는 매개변수입니다. 정보 status_code 는 대안책으로 파이썬의 http.HTTPStatus 와 같은, IntEnum 을 전달 받을 수 있습니다. 이것은: 응답 속에 상태 코드를 포함하여 반환합니다. ..
[ FastAPI ] 추가 모델
[ FastAPI ] 추가 모델
2021.09.20이전 예시에 이어서 생각해볼 때, 하나보다 더 많이 연결된 모델을 사용하는 게 흔한 상황일 것입니다. 이것은 사용자 모델에 대한 특별한 경우입니다. 왜냐하면: 입력 모델은 비밀번호를 갖게 해야하기 때문입니다. 출력 모델은 비밀번호를 가져서는 안 되기 때문입니다. 데이터베이스 모델은 아마도 해시된 비밀번호를 갖게 해야하기 때문입니다. 위험 절대 사용자의 숨김 없는 비밀번호를 저장하시면 안 됩니다. 항상 확인할 수 있는 "보안 해시"를 저장하기 바랍니다. 만약 이를 모른다면, "비밀번호 해시"가 무엇인지에 대해 보안 챕터에서 배울 수 있습니다. 다중 모델 여기 비밀번호 필드와 사용될 수 있는 공간에 따라 어떻게 모델이 생겼는지 알 수 있는 일반적인 개념이 있습니다: **user_in.dict() Pydant..
[ FastAPI ] 응답 모델
[ FastAPI ] 응답 모델
2021.09.20모든 경로 동작 내부에 매개변수 response_model 을 사용하여 응답을 위한 모델을 선언할 수 있습니다: @app.get() @app.post() @app.put() @app.delete() 기타 등등. 참고 response_model 은 모든 매개변수 및 바디와 같이, 경로 동작 함수가 아닌 "데코레이터" 메서드 ( get , post , 기타 등등)의 매개변수인 것을 잊지마시기 바랍니다. Pydantic 모델 어트리뷰트를 위해 선언했던 것과 동일한 자료형을 전달 받기 때문에, Pydnatic 모델이 되지만, List[Item] 과 같은, 예를 들어 Pydantic 모델의 list 가 될 수도 있습니다. FastAPI는 이 response_model 을 다음을 위해 사용합니다: 각 자료형 선언에..
[ FastAPI ] 헤더 매개변수
[ FastAPI ] 헤더 매개변수
2021.09.20헤더 매개변수를 Query , Path 그리고 Cookie 매개변수들과 같은 방식으로 정의할 수 있습니다. Header 임포트 먼저 Header 를 임포트 합니다: Header 매개변수 선언 Path , Query 그리고 Cookie 를 사용한 동일한 구조를 이용하여 헤더 매개변수를 선언합니다. 첫 번째 값은 기본값이며, 추가 유효성 검사 또는 어노테이션 매개변수를 전달할 수 있습니다: 기술 세부사항 Header 는 Path , Query 그리고 Cookie 의 "자매" 클래스입니다. 이것 역시 동일한 공통 Param 클래스를 상속합니다. 그러나 Query , Path , Header , 그리고 다른 것들을 fastapi 에서 임포트 할 때, 그것들은 실제로 특별한 클래스를 반환하는 함수임을 기억하시기 ..
[ FastAPI ] 쿠키 매개변수
[ FastAPI ] 쿠키 매개변수
2021.09.19Query 및 Path 매개변수와 동일한 방법으로 쿠키 매개변수를 정의할 수 있습니다. Cookie 임포트 우선, 아래와 같이 Cookie 를 임포트하시기 바랍니다: Cookie 매개변수 선언 그리고 Path 및 Query 와 동일한 구조를 사용하여 쿠키 매개변수를 선언하면 됩니다. 이때 첫 번째 값은 기본 값으로, 모든 추가 유효성 검사 또는 어노테이션 매개변수를 전달할 수 있습니다: 기술적 세부사항 Cookie 는 Path 및 Query 와 "자매" 클래스 입니다. 또한 동일한 공통 Param 클래스를 상속 받습니다. 그러나 fastapi 로부터 Query , Path , Cookie 그리고 다른 것들을 임포트할 때, 실질적으로 특별한 클래스를 반환하는 함수라는 것을 기억하기 바랍니다. 정보 쿠키를 ..
[ FastAPI ] 추가 데이터 자료형
[ FastAPI ] 추가 데이터 자료형
2021.09.19지금까지, 다음과, 같은 보편적인 데이터 자료형을 사용했습니다: int float str bool 그러나 더 복잡한 데이터 자료형을 사용할 수도 있습니다. 그리고 지금까지 봐왔던 동일한 기능을 사용할 수 있습니다: 훌륭한 편집기 지원. 들어오는 요청에 대한 데이터 변환. 응답 데이터를 위한 데이터 변환. 데이터 유효성 검사. 자동 어노테이션과 문서화. 다른 데이터 자료형 아래는 사용할 수 있는 추가적인 데이터 자료형입니다: UUID : 많은 데이터베이스와 시스템에서 보통 ID로 사용되는, 표준 "범용 고유 식별자(Universally Unnique Identifier)". 요청과 응답에서 str 로 표현. datetime.datetime : 파이썬의 datetime.datetime . 요청과 응답에서 2..
[ FastAPI ] 요청 예시 데이터 선언
[ FastAPI ] 요청 예시 데이터 선언
2021.09.19애플리케이션이 전달 받을 수 있는 데이터 예시를 선언할 수 있습니다. 그리고 이를 위한 여러 방법이 존재합니다. Pydantic schema_extra Pydantitc 공식 문서: 스키마 커스텀에 설명되어 있는, Config 와 schema_extra Pyndatntic 모델을 사용하여 example 을 선언할 수 있습니다: 추가 정보는 해당 모델의 JSON 스키마 결과로 그대로 추가되며, API 문서에 사용됩니다. 팁 JSON 스키마를 확장하고 본인만의 추가 정보를 추가할 때 똑같은 방법을 사용할 수 있습니다. 예를 들어 프론트엔드 유저 인터페이스를 위한 메타 데이터, 기타 등등을 추가하는 데 사용할 수 있습니다. Field 추가 인자 Pydantic 모델과 함께 Field() 를 사용할 때, 다른 ..
[ FastAPI ] 바디 - 중첩된 모델
[ FastAPI ] 바디 - 중첩된 모델
2021.09.17FastAPI를 사용하면 (Pydantic에 의해), 임의로 깊게 중첩된 모델을 정의, 유효성 검사, 문서화할 수 있습니다. 리스트 필드 어트리뷰트를 서브타입으로 정의할 수 있습니다. 예를 들어, 파이썬의 list 입니다: 이것은 tags 를 리스트의 아이템으로 만들어줍니다. 그럼에도 불구하고 개별 아이템에 대한 자료형을 선언하지는 않습니다. 자료형 매개변수를 사용한 리스트 필드 그러나 파이썬은 특정 방법을 통해 내부 자료형, 또는 "자료형 매개변수"와 함께 리스트를 선언할 수 있습니다. 타이핑의 List 임포트 우선, 표준 파이썬의 typing 모듈로부터 List 를 임포트하시기 바랍니다: 자료형 매개변수로 List 선언 list , dict , tuple 과 같은 자료형 매개변수(내부 자료형) 을 가..
[ FastAPI ] 바디 - 필드
[ FastAPI ] 바디 - 필드
2021.09.15Query , Path 그리고 Body 를 사용하여 경로 동작 함수 매개변수에 추가적인 유효성 검사와 메타 데이터를 선언한 것처럼, Pydantic 모델 내부에 Pydantic의 Field 를 사용하여 유효성 검사와 메타 데이터를 선언할 수 있습니다. Field 임포트 우선, 이것을 임포트해야 합니다: 주의 Field 가 다른 것( Query , Path , Body 기타 등등) 처럼 fastapi 가 아닌 pydantic 으로부터 바로 임포트 된다는 걸 명심하시기 바랍니다. 모델 어트리뷰트 선언 모델 어트리뷰트와 함께 Field 를 사용할 수 있습니다. Field 는 Query , Path , Body 와 같이 동작하며, 이와 동일한 매개변수와 다른 것들을 갖습니다. 기술적 세부사항 사실, Query ..
[ FastAPI ] 바디 - 다중 매개변수
[ FastAPI ] 바디 - 다중 매개변수
2021.09.12Path 와 Query 를 어떻게 사용하는지 살펴봤기 때문에, 이제 요청 바디 선언과 관련된 숙련된 사용법을 알아봅시다. Path , Query 그리고 바디 매개변수 혼합 우선, 당연하게도, Path , Query 그리고 요청 바디 매개변수 선언을 자유롭게 섞어 혼합할 수 있고 FastAPI는 이를 통해 무엇을 해야할지 알 수 있습니다. 그리고 None 을 기본 값으로 설정하여, 바디 매개변수를 선택 사항으로 선언할 수도 있습니다: 참고 이 경우, 바디로 부터 받아지는 item 은 선택 사항이고, None 기본 값을 갖는 다는 것을 잊지 마시기 바랍니다. 다중 바디 매개변수 이전 예시에서, 경로 동작은 아래와 같이 Item 의 어트리뷰트를 가진 JSON 바디를 예상합니다: 그러나, item 그리고 use..