FastAPI Put Request - 21

2022. 12. 23. 06:26·Develop/FastAPI
728x90
SMALL

1. PUT

  • 데이터 업데이트


2. 함수 생성

@app.put("/{book_id}")
async def update_book(book_id: UUID, book: Book):
    counter = 0
    for BOOK in BOOKS:
        counter += 1
        if BOOK.id == book_id:
            BOOKS[counter - 1] = book
            return BOOKS[counter - 1]
  • book_id를 경로 매개변수로 UUID로 받고 book을 Book 클래스로 받음.(필수적 매개변수 같이 보이지만 Book 클래스가 정의 되어있음으로 아님)
  • counter라는 변수에 0을 넣으며 초기화
  • BOOKS list를 for문을 돌며 BOOK dict를 한개씩 꺼내서 확인
  • for문이 한번 돌 때마다 counter에 1씩 더하기
  • BOOK dict의 id키의 value를 꺼내서 경로 매개변수로 들어온 book_id와 일치하는 확인
  • 2개의 값이 서로 일치한다면 BOOKS list의 인덱스로 접근해서 book의 값을 넣어줌(여기서 업데이트가 발생)
  • BOOKS list의 인덱스 값을 return


3. Swagger 확인

ex) UUID가 db6d5c1f-0460-4bab-8aa1-a801bf843273인 값을 바꿀 예정

(1) GET 요청으로 현재 BOOKS list의 전체 데이터 값 확인

(2) PUT 요청으로 데이터를 업데이트 할 book_id를 입력

  • 앞서 이야기 했듯이 book은 따로 파라미터로 받는 것이 없다
  • Example Value에 book의 config를 설정한 값들이 잘 보이는 것을 알 수 있다.
  • book_id에 수정 하고 싶은 UUID를 넣고, 수정 할 데이터를 입력한다.


(3) GET 요청으로 현재 BOOKS list의 전체 데이터 값 다시확인

  • PUT으로 update한 값이 GET을 요청 했을 때 파라미터로 넣은 UUID에 해당하는 데이터가 변경 된 것을 볼 수 있다.


4. 에러 사항 확인

  • BOOKS list에 없는 UUID 값을 넣는다면?

따로 에러 코드는 나지 않고 return 되는 값이 없음으로 null을 return 한다.(업데이트가 실패)

728x90
SMALL
저작자표시 비영리 변경금지 (새창열림)

'Develop > FastAPI' 카테고리의 다른 글

FastAPI Raise HTTP Exception - 23  (0) 2022.12.24
FastAPI Delete Request - 22  (0) 2022.12.23
FastApi Get By UUID - 20  (0) 2022.12.22
FastAPI Get Request - 19  (0) 2022.12.22
FastAPI BaseModel 구성 - 18  (0) 2022.12.22
'Develop/FastAPI' 카테고리의 다른 글
  • FastAPI Raise HTTP Exception - 23
  • FastAPI Delete Request - 22
  • FastApi Get By UUID - 20
  • FastAPI Get Request - 19
동석해요
동석해요
공부하고 싶은게 많은, 사소한 IT 지식들 공유
    250x250
  • 동석해요
    개발로 자기계발
    동석해요
  • 전체
    오늘
    어제
    • 분류 전체보기 (226)
      • Develop (126)
        • 기초지식 (12)
        • FastAPI (102)
        • Django (11)
      • Database & Data (62)
        • 기초지식 (16)
        • MySQL (29)
        • PostgreSQL (8)
        • 데이터 분석 (9)
      • 인공지능 (11)
        • PyTorch (9)
      • Cloud (8)
        • AWS (4)
        • GCP (2)
      • 버그처리 (14)
      • 회고 & 일상 (5)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
동석해요
FastAPI Put Request - 21
상단으로

티스토리툴바