데이터과학 삼학년

Fast API 소개 본문

Web

Fast API 소개

Dan-k 2023. 4. 16. 22:29
반응형

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를 개발하는 경우에 추천합니다.

728x90
반응형
LIST
Comments