• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

파라미터 문의

24.05.11 22:42 작성 조회수 119

1

안녕하세요.

from typing import list 추가해줬고,

다음과 같이 작성하였는데 docs 에서 테스트 하려고 보니

파라미터를 받는 부분이 없네요.

설명 부탁드립니다.

아울러 fast api를 처음 접하는 사람들은 이게 실행이 어떻게 되고 어떻게 swagger ui를 활용하고 타입힌트가 뭐고 등등의 세부적인 설명이 필요할 듯한데 이러한 부분이 좀 더 추가되었으면 합니다. 완전 초심자를 타켓층으로 하는 강의인데 생각보다 생략되는 부분이 많네요.

from typing import List
@app.get("/test_items/")
async def read_items(q : List[str] = None):
  query_items = {"q" : q}
  return query_i

답변 4

·

답변을 작성해보세요.

1

질문에 대해 조금 상세히 답변드리겠습니다!

 

현재 올려주신 코드는 쿼리 파라미터 혹은 경로 파라미터를 테스트해보시고 싶은 것으로 생각되는 데 맞을까요?

  • 일반적으로 경로파라미터는 리스트는 받지 않는 것이 일반적 사용입니다!

  • 혼동이 많이 온다고 알려져있기 떄문입니다!

  • 보통 쿼리 파라미터를 통해 리스트 데이터를 많이 수신해요!

 

현재 HTTP GET method를 통해 호출하고 계신데, GET method의 경우에는 body parameter를 포함할 수 없기 때문에 app.post로 바꿔주시면 swagger UI에서 편하게 테스트하실 수 있습니다!

  • 오타가 하나 있어서 수정해드렸습니다 🙂

강의를 처음 찍어보다 보니 다소간 부족한 부분이 많네요!

 

보내주신 소중한 피드백 반영해서 최대한 빠른 시일 내에 조금 더 개선해보도록 하겠습니다!

 

항상 노력하겠습니다.

 

감사합니다!

 

from typing import List
from fastapi import FastAPI, Query

app = FastAPI()

@app.post("/read_items1/")
async def read_items(q : List[str] = None):
  query_items = {"q" : q}
  return query_items


@app.get("/read_items2/{item_id}")
async def read_item2(item_id: int):
    return {"item_id": item_id}



@app.get("/read_items3/")
async def read_items(q: List[str] = Query(None)):
    return {"q": q}

image

image

image

 

 

0

아울러 보내주신 피드백이 많은 도움이 되었습니다.

편하게 말씀주시면 제게 더 많은 도움이 될 것 같습니다 🙂

0

사진에 대해 설명해드리면,

 

쿼리파라미터 + app.get

경로 파라미터 + app.get

바디 파라미터 + app.post에 대한 각각의 코드입니다 🙂

0

안녕하세요 🙂

강사 배코블린입니다!

 

가장 먼저 수강해주셔서 감사하다는 말씀과 피드백에 감사인사드립니다!

 

Python에 대한 기초지식을 배경으로 하기 때문에 타입 힌트 등에 설명을 다소간 많이 생략했는데, 피드백 주신 내용을 바탕으로 생각해보니 추가해드리는 게 좋을 듯 하군요 🙂

조금 더 기초까지 다루는 내용을 최대한 빨리 녹화해서 추가해드리도록 하겠습니다.

다시 한번 피드백 감사드립니다.