일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- tensorflow text
- spark udf
- top_k
- 유튜브 API
- correlation
- UDF
- airflow subdag
- API Gateway
- GCP
- Retry
- 공분산
- subdag
- requests
- BigQuery
- 상관관계
- flask
- login crawling
- GenericGBQException
- Airflow
- gather_nd
- XAI
- youtube data
- grad-cam
- API
- hadoop
- session 유지
- integrated gradient
- chatGPT
- TensorFlow
- Counterfactual Explanations
- Today
- Total
데이터과학 삼학년
Fast API 소개 본문
FastAPI 시작하기
FastAPI를 시작하기 위해서는 먼저 FastAPI 및 Uvicorn을 설치해야 합니다. 다음 명령어를 실행하여 설치합니다.
pip install fastapi uvicorn
이제 FastAPI를 사용하여 간단한 RESTful API를 작성해보겠습니다. 예를 들어, 사용자 정보를 생성하고 조회할 수 있는 API를 작성해보겠습니다.
from fastapi import FastAPI
app = FastAPI()
users = []
@app.post("/users")
async def create_user(name: str, age: int):
user = {"name": name, "age": age}
users.append(user)
return user
@app.get("/users")
async def read_users():
return users
위 코드에서는 FastAPI()
를 사용하여 FastAPI 애플리케이션 인스턴스를 생성합니다. 그리고 @app.post("/users")
와 @app.get("/users")
를 사용하여 API 엔드포인트를 정의합니다. @app.post("/users")
는 HTTP POST 요청을 처리하며, 사용자를 생성하는 함수 create_user
를 정의합니다. @app.get("/users")
는 HTTP GET 요청을 처리하며, 모든 사용자 정보를 조회하는 함수 read_users
를 정의합니다.
create_user
함수에서는 Pydantic 모델을 사용하여 요청 데이터를 검증합니다. 즉, name
은 문자열이어야 하고, age
는 정수여야 합니다. 유효성 검사를 통과한 데이터는 users
리스트에 추가되고, 생성된 사용자 정보가 반환됩니다. read_users
함수에서는 users
리스트에 있는 모든 사용자 정보를 반환합니다.
API 실행하기
API를 실행하려면 Uvicorn 서버를 실행해야 합니다. 다음 명령어를 실행하여 Uvicorn 서버를 시작합니다.
uvicorn main:app --reload
위 명령어에서 main
은 파일 이름이고, app
은 FastAPI 애플리케이션 인스턴스입니다. --reload
옵션을 사용하면 코드가 수정될 때마다 서버가 자동으로 다시 시작됩니다.
API 테스트하기
API가 정상적으로 작동하는지 테스트해보겠습니다. HTTPie를 사용하여 API 요청을 보내고 응답을 확인할 수 있습니다.
$ http POST http://localhost:8000/users name=John age:=30
HTTP/1.1 200 OK
content-length: 28
content-type: application/json
date: Tue, 20 Apr 2021 11:23:27 GMT
server: uvicorn
{
"age": 30,
"name": "John"
}
HTTPie를 사용하여 POST 요청으로 사용자 정보를 생성하고, GET 요청으로 모든 사용자 정보를 조회했습니다.
API 문서화하기
FastAPI는 Swagger UI와 Redoc를 사용하여 자동으로 API 문서를 생성합니다. http://localhost:8000/docs 또는 http://localhost:8000/redoc 주소를 사용하여 문서를 확인할 수 있습니다.
결론
이제 FastAPI를 사용하여 간단한 RESTful API를 작성하는 방법을 알아보았습니다. FastAPI는 높은 생산성과 빠른 실행 속도를 제공하므로, Python을 사용하여 API를 개발하는 경우에 추천합니다.
'Web' 카테고리의 다른 글
[FastAPI] Fast API를 이용한 간단 웹페이지 (클라이언트 동적 할당) (0) | 2024.01.08 |
---|---|
AJAX란? (0) | 2020.04.19 |
NGINX 504 Gateway Time-out 에러와 해결방법 (0) | 2020.03.11 |
request.values 로 body를 분석( base64 encode --> decode) (0) | 2020.03.09 |
로그인 기능 추가 --> 다 만든 web에 로그인만 입히기 (0) | 2020.03.06 |