슈퍼코딩/기초

2024.04.10(수) 슈퍼코딩 신입연수원 2주차 Day 3 후기 - FastAPI

곰돌이볼 2024. 4. 10. 21:16
  • API
    • path를 사용해야할 때
      • 특정 리소스를 식별하기 위해서
    • query를 사용해야할 때
      • 정렬하거나 필터링하기 위해서

 

  • fastApi 실습코드
    • shift+F5 : 완전 새로운 사이트로 접속
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

items = ["맥북", "아이폰", "아이패드"]

class Item(BaseModel):
    id:int
    content:str

@app.get("/items")
def read_items():
    return items

# parameter
@app.get("/items/{id}")
def read_id_items(id):
    return items[int(id)]

# query
@app.get("/items")
def read_id_items(skip:int=1, limit:int=10): # 쿼리값으로 들어옴
    return items[skip: skip+limit]

# body
@app.post("/items")
def post_item(item:Item):
    items.append(item.content)
    return '성공했습니다!'

 

  • world에 기능 추가
    • 정답을 서버로부터 받아오기
  • index.js
  const handleEnterKey = async () => {
    // 문제 정답(서버로부터 받아오기)
    const response = await fetch("/answer");
    const response_obj = await response.json();
    const answer = response_obj.answer;
}
  • main.py
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from pydantic import BaseModel

app = FastAPI()

# 오늘의 정답
answer = 'WORLD'

@app.get('/answer')
def get_answer():
    return {"answer" : answer}

# static 경로에 있는 파일을 사용할 예정
app.mount("/", StaticFiles(directory="static", html=True), name="static")

 

 

  • 백엔드의 CRUD
    • C : create
    • R : read
    • U : update
    • D : delete
  • Rest API
    • REpresentational State Transfer API
    • 명세만 봐도 기능을 알 수 있는 API