728x90
데이터 수집 API 구현
강의 목표:
- FastAPI를 사용하여 데이터를 수집하는 방법을 이해한다.
- 데이터 입력 엔드포인트(/data_input)를 구현하여 API로 데이터를 전송받고 저장하는 방법을 배운다.
강의 세부 내용:
1. 데이터 수집 API의 기본 개념
- API를 통한 데이터 수집: 클라이언트로부터 데이터를 수집하고 이를 서버에서 처리하는 방법을 학습.
- FastAPI에서는 POST 요청을 통해 데이터를 받아올 수 있으며, 이를 JSON 또는 다른 형식으로 처리할 수 있습니다.
2. FastAPI에서 데이터 전송 및 수신
- HTTP 메서드: FastAPI에서는 GET, POST, PUT, DELETE 등의 HTTP 메서드를 사용하여 다양한 형태의 요청을 처리합니다.
- POST 요청: 데이터를 서버에 보내기 위해 사용됩니다. 이 강의에서는 POST를 사용해 클라이언트로부터 데이터를 받아옵니다.
- Pydantic을 사용한 데이터 유효성 검사: FastAPI는 Python의 타입 힌트를 기반으로 Pydantic을 사용해 입력 데이터를 검증합니다. 이 과정을 통해 전송된 데이터의 타입이나 형식이 맞는지 자동으로 검사할 수 있습니다.
실습: /data_input 엔드포인트 구현
1. FastAPI에서 POST 요청을 처리하는 기본 구조
- main.py 파일에서 /data_input이라는 엔드포인트를 생성하고, 클라이언트로부터 JSON 데이터를 받아 처리하는 방법을 설명합니다.
from fastapi import FastAPI from pydantic import BaseModel # FastAPI 인스턴스 생성 app = FastAPI() # Pydantic 모델 정의 (데이터의 유효성 검사를 위해 사용) class DataInput(BaseModel): name: str age: int email: str # POST 엔드포인트 정의 @app.post("/data_input/") async def receive_data(data: DataInput): # 수신한 데이터를 처리 return {"message": "Data received", "name": data.name, "age": data.age, "email": data.email}
2. 코드 설명:
- BaseModel: Pydantic의 기본 모델을 상속받아, API로 수신할 데이터 구조를 정의합니다.
- name: str: 문자열로 된 이름 필드.
- age: int: 나이 필드, 정수형 데이터.
- email: str: 이메일 필드.
- @app.post("/data_input/"): POST 요청을 처리하는 엔드포인트입니다.
- receive_data: 클라이언트가 전송한 데이터를 DataInput 모델로 받습니다.
- 전송된 데이터는 서버에서 자동으로 검증되며, 검증에 실패하면 FastAPI는 422 상태 코드와 함께 에러 메시지를 반환합니다.
3. 테스트: FastAPI 엔드포인트에 POST 요청 보내기
- POST 요청을 보내기 위해 Postman 또는 curl을 사용할 수 있습니다.
Postman 사용 예시:
- Method: POST
- URL: http://127.0.0.1:8000/data_input/
- Body: JSON 형식으로 데이터를 전송.
{
"name": "Alice",
"age": 30,
"email": "alice@example.com"
}
curl 사용 예시:
curl -X 'POST' \
'http://127.0.0.1:8000/data_input/' \
-H 'Content-Type: application/json' \
-d '{"name": "Alice", "age": 30, "email": "alice@example.com"}'
- 응답:
{
"message": "Data received",
"name": "Alice",
"age": 30,
"email": "alice@example.com"
}
4. 데이터 저장:
- 이 예시에서는 데이터를 단순히 받아서 응답으로 반환하지만, 실제 프로젝트에서는 받은 데이터를 데이터베이스에 저장할 수 있습니다. 다음 강의에서는 이를 더 깊이 다룰 예정입니다.
마무리 및 추가 학습
- 이번 강의에서는 POST 요청을 통해 데이터를 수집하는 FastAPI 엔드포인트를 구현했습니다.
- Pydantic을 사용하여 데이터 유효성 검사를 자동화하는 방법을 배웠으며, 실제로 데이터를 받아 처리하는 기본적인 흐름을 이해했습니다.
- 다음 강의에서는 데이터를 저장하고 관리하는 방법에 대해 배우며, 간단한 데이터베이스 연동 실습을 진행합니다.
728x90
'FastAPI' 카테고리의 다른 글
FastAPI 강좌 5강: 비동기 처리와 성능 최적화 (1) | 2024.10.09 |
---|---|
FastAPI 강좌 4강: 데이터 분석 결과 API 구현 (0) | 2024.10.09 |
FastAPI 강좌 3강: 데이터 처리와 Pandas 연동 (4) | 2024.10.09 |
FastAPI 강좌 1강: FastAPI 기본 개념과 환경 설정 (0) | 2024.10.09 |
데이터 분석 개발자를 위한 FastAPI 강좌 (8강) (1) | 2024.10.09 |