엔드포인트와 HTTP 메서드! / 질문
강의 상에 설명으로는 이해가 부족하여 질문 합니다.
1. 앞에 작성한 코드에 코드명이 따로 안나와 있어서 앞 선 코드가(import logging으로 시작하는 코드) main.py가 맞을까요?
ps. 강의자료를 github주소로 기재해주신다고 하셨는데 github주소를 찾을 수 없어서 추가로 문의 드립니다
Answer 2
0
안녕하세요 강사 배코블린입니다!
먼저 강의를 수강해주셔서 감사하다는 말씀을 드리고, 피드백에 대해서도 정말 감사인사를 드립니다 :)
네 맞습니다!
다음의 코드를 main.py에 기입하신 후 uvicorn 명령어로 실행하시면 됩니다!
uvicorn의 명령어로 실행하면 main.py의 Fastapi로 구현한 api가 uvicorn 서버로 실행되게 됩니다.
그러면 저희는 서버를 오픈한 것이에요! 참고로 uvicorn main:app 명령어는 main 소스코드안의 app 인스턴스를 서버로 실행하는 명령어 입니다! (uvicorn에 대한 강의도 하나 추가해드리면 좋을 듯 하군요!)
이제 사용자 코드를 동작시키면 서버에 접속해 API를 사용할 수 있는데, 그 코드가 client.py 코드 입니다!
강의 화면 상의 좌측의 출력은 서버의, 우측의 출력은 클라이언트의 출력입니다.
현재 이런 식으로 코드가 있지만 강의 내용 자체를 주석으로 추가하는 작업을 진행 중 입니다!
모르는 부분이 있을 때 강의를 다시 들으시는 것도 좋지만 바로 설명이 있으면 더 좋을 것 같아서요!
이 작업이 완료되면 바로 링크와 강의자료 전자책을 제공해드리겠습니다 🙂
감사합니다!
추가 질문이 있으시면 언제든 항상 편하게 남겨주세요!
import logging
from fastapi import FastAPI, Form
logging.basicConfig(level =logging.INFO)
logger = logging.getLogger(__name__)
app = FastAPI()
items = {"1": {"name" : "pen"}, "2":{"name":"pencil"}}
@app.get("/items")
async def read_items():
logger.info("Fetching all items")
return items
@app.post("/items/{item_id}")
async def create_item(item_id : str, name: str = Form(...)):
items[item_id] = {"name": name}
logger.info(f"item created: {item_id} - {name}")
return items[item_id]
@app.put("/items/{item_id}")
async def update_item(item_id: str, name :str = Form(...)):
items[item_id] = {"name" : name}
logger.info(f"item updated: {item_id} - {name}")
return items[item_id]
@app.delete("/items/{item_id}")
async def delete_item(item_id: str):
if item_id in items:
del items[item_id]
logger.info(f"item deleted: {item_id}")
return {"message:" "Item deleted"}
else:
logger.info(f"item not found: {item_id}")
return {"message": "item not found"}
@app.patch("/items/{item_id}")
async def patch_item(item_id: str, name: str =Form(...)):
if item_id in items:
items[item_id]["name"] = name
logger.info(f"Item patched: {item_id} - {name}")
return items[item_id]
else:
logger.info(f"Item not found {item_id}")
return {"message": "Item not found"}
codex에게 대용량 코드베이스를 인식 시키는 방법은 어떤게 있나요?
0
2
0
출력값 질문
0
8
1
슬롯 관련 문의
1
10
2
수업노트가 어디에 있나요?
0
19
1
[긴급요청] 28강 동영상 전체에 오디오가 잘못들어가있습니다.
0
16
1
실제 계좌 잔고 및 테스트중에
1
29
4
Replit UI 변경으로 인한 실습 진행 문의
1
16
1
29강 5:00
0
23
2
설치 및 설정 가이드 노션 자료는 없나요 ?
0
21
2
실기시험 제출관련
0
152
2
6.20 작업형 2 과적합
0
157
3
install까지 설치 하였는데 start 가안됩니다.
1
26
1
8분54초 테이블 내용 문의
0
22
1
코딩팡 장업형2 베이스 라인 인코딩 종류 질문
0
49
2
multi_tool_agent.py 에서 arxiv tool 에러
0
18
1
강의 소스 코드
1
220
2
강사님의 강의 소스코드
1
231
1
깃허브 레포지토리로 버전관리하기
2
422
1
async, await 질문
1
354
1
파라미터 문의
1
500
4
소스코드는 어디서 받을 수 있나요..?
1
282
1
라우터 함수를 비동기함수로 작성하셨다가 동기함수로 작성하시기도 하는 이유가 궁금합니다.
1
227
1
좀 더 맛깔나게 써봅시다! / 질문
0
337
3
엔드포인트와 HTTP메서드! _ 강좌에서 질문 있습니다
1
277
2

