본문 바로가기
반응형

Fast API32

Fast API 배우기 12부 - Extra Model 앞선 예제에서 보았듯이 서로 연관된 여러 모델을 사용하는 경우가 많다. 아래의 경우가 대표적인 케이스이다 input model은 패스워드가 필요하다 output model은 패스워드를 포함하면 안된다. database model은 hash로 된 패스워드가 필요하다 위 케이스를 어떻게 해결하면 좋을까? 1. Multiple Models 가장 기초적인 해결방법이다. 각 케이스마다 모델을 따로 작성한다. from typing import Optional from fastapi import FastAPI from pydantic import BaseModel, EmailStr app = FastAPI() class UserIn(BaseModel): username: str password: str email: .. 2021. 11. 1.
Fast API 배우기 11부 - Response Model response_model 을 이용하여 아래의 operation들에 관한 response model을 지정해 줄 수 잇씁니다. @app.get() @app.post() @app.put() @app.delete() etc. from typing import List, Optional from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str description: Optional[str] = None price: float tax: Optional[float] = None tags: List[str] = [] @app.post("/items/", response_model=.. 2021. 11. 1.
Fast API 배우기 10부 - Cookie 파라미터, Header 파라미터 Cookie 파라미터 Query 클래스와 Path 클래스와 동일한 사용버븡로 Cookie 클래스를 이용하여 Cookie를 다룰 수 있다 from typing import Optional from fastapi import Cookie, FastAPI app = FastAPI() @app.get("/items/") async def read_items(ads_id: Optional[str] = Cookie(None)): return {"ads_id": ads_id} Headerr 파라미터 마찬가지로 Header 클래스를 이용해 Header를 다룰 수 있다 from typing import Optional from fastapi import FastAPI, Header app = FastAPI() @app... 2021. 11. 1.
Fast API 배우기 9부 - Extra Data Types 지금까지 봐 온 데이터 타입은 아래와 같다. int float str bool 하지만 Fast API는 훨 씬 더 많은 데이터 타입을 제공한다. UUID: "Universally Unique Identifier"의 약자 이다., 많은 데이터베이스 시스템에서 id로 사용된다. request와 response는 전부 str로 표현된다. datetime.datetime: 파이썬의 datetime.datetime. request와 response에서 str로 표현된다. ISO 8601 format을 따른다. ex: 2008-09-15T15:53:00+05:00. datetime.date: 파이썬의 datetime.date. request와 response에서 str로 표현된다. ISO 8601 format을 따.. 2021. 11. 1.
Fast API 배우기 8부 - Example Data 넣기 Example Data 넣기 모델에 Confg 클래스를 정의한뒤 schema_extra 에 값을 넣으면 example 데이터를 넣을 수 있다. from typing import Optional from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str description: Optional[str] = None price: float tax: Optional[float] = None class Config: schema_extra = { "example": { "name": "Foo", "description": "A very nice Item", "price": 35.4.. 2021. 11. 1.
Fast API 배우기 7부 - Field 클래스 Field 클래스란 쿼리 파라미터를 Query클래스로 다루고 패스 파라미터를 Path클래스로 다루고 리퀘스트 바디를 Body 클래스로 다루듯이 리퀘스트 바디 안에 있는 Metadata를 Feild 클래스로 세세하게 다룰 수 있다 from typing import Optional from fastapi import Body, FastAPI from pydantic import BaseModel, Field app = FastAPI() class Item(BaseModel): name: str description: Optional[str] = Field( None, title="The description of the item", max_length=300 ) price: float = Field(...,.. 2021. 11. 1.
Fast API 배우기 6부 - Body 클래스 앞서 Query와 Path를 좀더 심도있게 배웠다. 이번에는 Request Body를 좀더 심도있게 다뤄보자 Query, Path, Request Body 함께 사용하기 Query와 Path 파라미터를 함께 사용한것처럼 Request Body도 함수인자에 조합하여 사용 가능하다 from typing import Optional from fastapi import FastAPI, Path from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str description: Optional[str] = None price: float tax: Optional[float] = None @app.put("/items/{item_id.. 2021. 10. 21.
Fast API 배우기 5부 - Path 클래스 앞서 Query 클래스로 Query Parameter를 다루는법을 배웠다 똑같에 Path 클래스로 Path Parameter를 좀더 심도있게 다룰 수 있다 Metadata 선언하기 Query와 똑같이 title 에 메타데이터를 넣어주면 된다 item_id: int = Path(..., title="The ID of the item to get"), from typing import Optional from fastapi import FastAPI, Path, Query app = FastAPI() @app.get("/items/{item_id}") async def read_items( item_id: int = Path(..., title="The ID of the item to get"), q: Op.. 2021. 10. 21.
Fast API 배우기 4부 - Query 클래스 이번시간에는 Query Parameter를 좀더 심도있게 다뤄보자. 심도있게 다룬다는 말은 쿼리파라미터에 본래모습을 학습하고 여러 기능을 사용해보자는 의미 from typing import Optional from fastapi import FastAPI app = FastAPI() @app.get("/items/") async def read_items(q: Optional[str] = None): results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]} if q: results.update({"q": q}) return results 위 예제에서는 q가 쿼리 파라미터이고 Optional인 상황이다 Query 클래스 쿼리 파라미터를 심도있게 다루기 .. 2021. 10. 20.
Fast API 배우기 3부 - Request Body Request Body & Response Body란? Request Body : 클라이언트가 API로 데이터를 보낼때 사용되는 데이터 Response Body : API가 request의 응답으로 클라이언트에게 보내는 데이터 path 파라미터, query 파라미터는 url에서 어떤 데이터를 보내는지 볼 수 있다. 이 데이터들 말고 url에서 보이지 않는 데이터를 실어 보낼 때 body 파라미터를 사용한다고 생각하면 된다. API(백엔드)는 거의 모든경우에 response body를 클라이언트에게 보내야 한다. 하지만 클라이언트는 꼭 request body를 보내지 않아도 된다. fast api에서는 request body를 만들기 위해선 Pydantic models 를 사용한다 Pydantic의 Bas.. 2021. 10. 20.
Fast API 배우기 2부 - query parameters Query Parameter란? 함수에 사용되는 parameter인데 path parameter에 없는 파라미터를 의미한다 from fastapi import FastAPI app = FastAPI() fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}] @app.get("/items/") async def read_item(skip: int = 0, limit: int = 10): return fake_items_db[skip : skip + limit] 위 코드에서 skip과 limit은 query로 값을 받는 파라미터이다. 저 skip과 limit에 값을 넣어주고 싶으면 ? 와 &를 이용한다. 아래와 같이.. 2021. 10. 19.
Fast API 배우기 1부 - 시작 및 path parameter Fast API란? 파이썬 웹 프레임워크중 가장 빠른속도를 지닌 프레임워크. Node.js와 Go와 속도가 맞먹는다 속도만 빠를뿐만 아니라 개발속도도 미치도록 빠르다 인터넷에 자료는 적지만 그걸 커버쳐줄만큼 document가 잘되어있다 1. 설치 두줄이면 끝. 쉽쥬? pip install fastapi pip install "uvicorn[standard]" 2. Hello World 출력하기 말도 안되게 간단하쥬? from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} 아래 커맨드로 실행해보자 uvicorn main:app --reload 그리고 로컬서버로 접속!.. 2021. 10. 18.
반응형