오늘은 FastAPI를 사용하여 웹 API를 구축하는 기본 개념과 실습을 진행했습니다.
FastAPI의 라우팅, 타입 힌트, HTTP 메서드에 대해 학습하고 이를 실제 코드에 적용해보았습니다.
학습 중 FastAPI의 자동 문서화 기능과 타입 힌트를 통한 데이터 검증의 유용성을 발견했습니다. 그러나 curl 명령어를 사용하여 POST나 PUT 요청을 보낼 때 JSON 데이터 형식에 맞지 않는 문제로 인해 어려움을 겪었습니다.
이를 해결하기 위해 Content-Type: application/json 헤더를 추가하고 데이터 형식을 정확히 맞추는 연습을 통해 문제를 해결했습니다.
내일은 FastAPI의 심화 주제로 데이터베이스 연동과 사용자 인증 및 권한 관리에 대해 학습할 예정입니다.
이 과정을 통해 더 복잡한 웹 애플리케이션을 개발하는 데 필요한 기술을 습득할 계획입니다.
FastAPI 기본 개념과 실습
오늘은 FastAPI를 이용하여 기본적인 웹 API를 구현하는 방법에 대해 학습했습니다. FastAPI는 Python으로 작성된 현대적인 웹 프레임워크로, 빠른 개발과 높은 성능을 제공합니다.
주요 내용
라우팅: 엔드포인트를 정의하고 각 엔드포인트가 어떤 요청을 처리할지 결정하는 과정.
데코레이터(@app.get, @app.post, @app.put, @app.delete)를 사용하여 HTTP 메서드와 URL 패턴을 지정.
타입 힌트: FastAPI는 Python의 타입 힌트를 사용하여 자동으로 입력값을 검증하고 문서를 생성.
- 기본 데이터 타입: int, float, str, bool.
- 컬렉션 타입: List, Tuple, Dict, Set.
- 특수 타입: None, Any.
- 고급 타입: Optional, Union, Callable, Iterable, Sequence.
HTTP 메서드:
- GET: 데이터를 조회할 때 사용.
- POST: 새로운 데이터를 생성할 때 사용.
- PUT: 기존 데이터를 수정할 때 사용.
- DELETE: 데이터를 삭제할 때 사용.
학습한 내용에서의 발견
- 자동 문서화 : FastAPI는 자동으로 OpenAPI 및 Swagger UI 문서를 생성해주어 API의 사용법을 쉽게 확인할 수 있다는 점이 매우 유용했습니다.
- 데이터 검증 및 변환 : 타입 힌트를 통해 입력 데이터의 검증 및 변환이 자동으로 이루어지며, 이를 통해 코드의 안정성이 크게 향상될 수 있음을 발견했습니다.
어려웠던 점
데이터 타입 오류 curl 명령어를 사용하여 POST나 PUT 요청을 보낼 때, JSON 데이터 형식에 맞지 않으면 오류가 발생하여 데이터를 정확히 보내는 것이 어려웠습니다.
해결 방법
JSON 포맷 확인 curl 명령어에서 JSON 데이터를 정확히 전송하기 위해 -H "Content-Type: application/json" 헤더를 추가하고 데이터의 형식을 정확히 맞추는 연습을 했습니다.
내일의 학습 목표
- 데이터베이스 연동: SQLAlchemy를 사용하여 데이터베이스와 연동하는 방법을 학습할 예정입니다.
- 사용자 인증 및 권한 관리: FastAPI를 이용한 JWT 인증 방식 및 사용자 권한 관리에 대해 학습할 계획입니다.
'CoWithMe' 카테고리의 다른 글
FastAPI vs Flask: APIRouter와 블루프린트 비교 (102) | 2024.07.01 |
---|---|
FastAPI Pydantic을 활용한 요청 데이터 검증 및 응답 모델 정의 학습 요약 (130) | 2024.06.28 |
무작정 따라하기 플라스크 끝 FASTAPI 시작 (10) | 2024.06.25 |
TIL to 코윗미 변경 (126) | 2024.06.24 |
훌륭한 사람 뽑기보다 더 중요한 것 교육과 시스템 플라스크 회원관리 공부 (15) | 2024.06.21 |