Fast API는 현재 파이썬 웹 프레임워크 중 가장 빠른 것 중 하나이며, type hints를 제공한다.주요 특징은 아래와 같다.Fast: NodeJS 및 Go와 동등한 높은 성능. 가장 빠른 Pytho
Create App Run
기존의 Flask나 Django와는 달리 Fast API는 Type Hints를 사용하고 있다.Type Hints는 파라미터 값이 어떤 자료형이 들어와야하는
Fast API 에서는 Flask에서 하던 것과 같이 Path Parameter를 설정할 수 있다.위와 같이 선언을 하고 난 뒤, http://127.0.0.1:8000/items/item1 으로 url을 입력해보면 {"item_id":"item1"}과 같은
함수 파라미터에 path에 정의되지 않은 변수를 정의할 경우, 이는 Query Parameter로 인식이 된다.쿼리는 key-value 형식으로 되고, URL뒤에 ?이 붙고 적히며, 여러개일 경우 &으로 이어진다.같은 방법으로 Optional Query Paramete
저번 Query Parameter 글에서 한 분이 댓글에 질문을 남겨주셨다.필터링 처리를 쿼리파라미터로 7개 이상으로 받게될 경우 어떻게 해야하나요?파이썬 패킹 처리를 할 것 같은데... FastAPI에서 어떻게 하는지 궁금하네요이 부분은 나도 궁금해서 한번 실험을 해
지금까지는 GET방식이기에 URL 및 Request Header로 값이 넘어왔다. 하지만 POST방식에서는 Request Body로 넘어오기에 이전가지의 방식으로는 데이터를 받을 수 없다.Request Body는 Pydantic Model을 이용하여 값을 받을 수 있다
이전에 봤었던 Query Parameter에서 Optional한 경우에, 값이 주어지지 않아도 되었었다. 하지만 만약 값이 주어졌을 때, Fast API에서는 추가적인 유효성 검사를 할 수 있다.Optional Parameter인 q에 대해, 값이 주어졌을 때 max
Query parameter와 같이 Path parameter에도 유효성 기준을 설정할 수 있다.Query때와 마찬가지로 fastapi에서 Path를 import 해온다.Query와 다를 바 없다. 똑같이 title metadata를 설정할 수 있다.다만, Path p
이제 모든 parameter들의 선언 방법에 대해 알아보았으니, 아래의 코드를 보며 어떤 parameter인지 보자.item_id : path parameter (required) → URL 에 명시q : query parameter (optional) → URL X,
Pydantic 모델을 이용하여 Nested Model도 구현할 수 있다.tags는 어떠한 자료형이든 담을 수 있는 list가 된다.위와 같이 typing에서 List를 import하여 List\[str]과 같이 쓰면, str만이 요소가 되는 리스트가 된다.Set 또한
docs에서 Json 스키마에 대해 추가적인 정보를 적어줄 수 도 있다.JSON 스키마를 정의할 수 있는 방법은 여러가지가 있다.pydantic 모델에서 Config에 schema_extra를 정의하면 된다.Field, Path, Query, Body에도 모두 똑같이
Query와 Path와 같이 쿠키와 헤더를 설정할 수 있다.Cookie는 Path와 Query의 형제 Class이며 Param클래스를 똑같이 상속받는다. 이 말은 Cookie또한 함수라는 것!Cookie 설정한 것과 똑같이 하면 된다. Header 또한 함수!하지만 H
Fast API에서는 response_model이라는 인자로 손쉽게 데이터를 정형화하여 내보낼 수 있다. response model은 pydantic으로 정의된 모델이나 이를 담는 데이터 형식이 될 수 있다.path operation 부분인 app.post의 인자로 r
이전의 내용에서 유저에 관한 모델을 생각해보자.input model은 password가 있어야하고,output model은 password를 내보내지 말아야하고,database model은 hashed password가 필요하다.이를 단순히 작성하면 아래와 같을 것이다
지금 현재는 Rest API의 응답은 아마 status code가 200일 것이다.하지만 이는 HTTP status code와는 약간은 동떨어진 응답 코드이다.일반적으로 get은 200, post는 201, delete는 204의 응답 코드를 가진다.그렇다면 fast