[FastAPI] Request

JeongChaeJin·2022년 7월 27일
0
from typing import Optional
from enum import Enum
from fastapi import FastAPI
from pydantic import BaseModel, HttpUrl

app = FastAPI()


class User(BaseModel):
    name: str
    password: str
    avatar_url: Optional[HttpUrl] = None


@app.post("/users")
def create_user(user: User):
    return user
  • pydantic 에서 제공하는 HttpUrl, BaseModel을 통해 type hint를 줄 수 있다.

  • 요청까지 시도해보았다.

  • httpie 에서 json 만드는 형식이니 참고만하자.

  • 비밀번호는 반드시 암호화하자.

  • pydantic에는 EmailStr 이 있다. 이메일 검증 정규표현을 사용할 필요가 없다.

from typing import Optional, List
from enum import Enum
from fastapi import FastAPI
from pydantic import BaseModel, HttpUrl

app = FastAPI()


class Item(BaseModel):
    name: str
    price: float
    amount: int = 0


class User(BaseModel):
    name: str
    password: str
    avatar_url: Optional[HttpUrl] = None
    inventory: List[Item] = []


@app.post("/users")
def create_user(user: User):
    return user


@app.get("/users/me")
def get_user():
    fake_user = User(
        name="FakeUser",
        password="1234",
        inventory=[
            Item(name="전설 무기", price=1_000_000),
            Item(name="전설 무기", price=900_000),
        ],
    )
    return fake_user

  • 다중 모델을 통해 구현하면 이렇게 복잡한 json 포맷도 처리할 있다.

  • POST를 통한 요청도 해보자 !
profile
OnePunchLotto

0개의 댓글