r잡초처럼
바른 프로그래밍
r잡초처럼
전체 방문자
오늘
어제
  • 분류 전체보기 (124)
    • FastAPI (7)
    • 끄적끄적 (2)
    • Python (17)
    • Django (31)
    • Database (2)
    • Docker (7)
    • 디자인패턴 (2)
    • CS 공부 (12)
      • 알고리즘 (2)
      • 자료 구조 (1)
      • 네트워크 (7)
      • IT 지식 (1)
      • 운영체제 (1)
    • 기타 팁들 (10)
    • Aws (2)
    • 독서 (1)
    • 코딩테스트 공부 (1)
      • 백준 (0)
      • 프로그래머스 (1)
    • DevOps (13)
    • TIL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 6장
  • docker
  • preonboarding
  • encoding
  • 케이블의 종류
  • 책 리뷰
  • fastapi
  • 5장 회사에서 하는 랜 구성
  • 네트워크
  • 랜과 왠
  • 랜 카드
  • 상속과 컴포지션
  • Batch
  • 완벽한 IT 인프라 구축을 위한 Docker
  • CS 지식
  • cp949
  • 컴퓨터 기본 지식
  • query param
  • 7장
  • validate
  • 물리 계층
  • 파이썬 클린 코드
  • 모두의 네트워크
  • pycharm
  • depends
  • dotenv
  • poetry
  • pytest
  • 전기 신호
  • 상속 안티 패턴

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
r잡초처럼

바른 프로그래밍

FastAPI

QueryParameter

2023. 8. 2. 14:09

1. kwargs 와 type 힌트를 통해 queryparameter 를 사용할 수 있다.

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]

2. Optional의 경우엔 어떻게?

@app.get("/items/{item_id}")
async def read_item(item_id: str, q: str | None = None):
    if q:
        return {"item_id": item_id, "q": q}
    return {"item_id": item_id}

3. multiple path and query parameter 는 특정 순서로 선언할 필요는 없다.

@app.get("/users/{user_id}/items/{item_id}")
async def read_user_item(
    user_id: int, item_id: str, q: str | None = None, short: bool = False
):
    item = {"item_id": item_id, "owner_id": user_id}
    if q:
        item.update({"q": q})
    if not short:
        item.update(
            {"description": "This is an amazing item that has a long description"}
        )
    return item

4. required query parameter는 default value 를 설정하지 않으면 된다.

@app.get("/items/{item_id}")
async def read_user_item(item_id: str, needy: str):
    item = {"item_id": item_id, "needy": needy}
    return item

물론 어떤 param 은 필수값이고 어떤 건 옵셔널하다면 다음과 같이 선언해도 된다.

@app.get("/items/{item_id}")
async def read_user_item(
    item_id: str, needy: str, skip: int = 0, limit: int | None = None
):
    item = {"item_id": item_id, "needy": needy, "skip": skip, "limit": limit}
    return item

'FastAPI' 카테고리의 다른 글

FastAPI - Query Parameter에 Custom Validate 적용하기  (0) 2023.09.02
FastApi 사용하면서 기록할 것들  (0) 2023.08.30
Annotated  (0) 2023.08.03
FastAPI - PathParameter  (0) 2023.08.02
FastAPI 시작하기 - 개발환경 세팅  (0) 2023.08.01
    'FastAPI' 카테고리의 다른 글
    • FastApi 사용하면서 기록할 것들
    • Annotated
    • FastAPI - PathParameter
    • FastAPI 시작하기 - 개발환경 세팅
    r잡초처럼
    r잡초처럼
    오늘보다 내일 더 나은 개발자가 되기 위한 노력을 기록하는 블로그 입니다.

    티스토리툴바