#질문 목록 리턴
def get_question_list(db: Session):
    question_list = db.query(Question)\\
        .order_by(Question.create_date.desc())\\
        .all()
    return question_list

#quesiton_id에 해당하는 질문을 조회하여 리턴하는 함수
def get_question(db: Session, question_id: int):
    question = db.query(Question).get(question_id)
    return question

@router.get("/list", response_model=list[question_schema.Question])
def question_list(db: Session = Depends(get_db)):
    _question_list = question_crud.get_question_list(db)
    return _question_list

@router.get("/detail/{question_id}", response_model=question_schema.Question)
def question_detail(question_id: int, db: Session = Depends(get_db)):
    question = question_crud.get_question(db, question_id=question_id)
    return question

question_list() 는 스키마 구조에 따른 데이터를 리스트로 받아와서 질문 목록을 리턴한다.

question_deatail() 은 리스트로 받아오지 않는다.

API 실행

스크린샷 2024-05-09 오후 3.14.13.png

파라미터를 꼭 입력해줘야 한다.

스크린샷 2024-05-09 오후 3.13.47.png

<script>
  import fastapi from "../lib/api";

  export let params = {};
  let question_id = params.question_id;

  let question = {};

  function get_question() {
    fastapi("get", "/api/question/detail/" + question_id, {}, (json) => {
      question = json;
    });
  }

  get_question();
</script>

<h1>{question.subject}</h1>
<div>
  {question.content}
</div>

fastapi 함수를 사용할 수 있도록 import하고 질문 상세 API 를 호출하는 get_question 함수를 만들었다. 그리고 get_question 함수를 호출하여 질문 상세 API의 출력 값(json)을 question 변수에 저장했다. question 변수는 질문 한 건에 대한 상세 정보이므로 {}로 초기화 해야 한다.

스크린샷 2024-05-09 오후 3.26.20.png