REST API와 FastAPI 개요

2star_·2024년 11월 2일
0

AI활용

목록 보기
3/13

참고링크


REST API와 FastAPI 개요

REST API란?

REST API는 웹에서 정보를 주고받기 위한 규칙이다. 이 규칙을 사용하면 두 개의 프로그램이 서로 통신할 수 있다. REST는 다음과 같은 원칙을 따른다:

  • 클라이언트-서버 구조: 클라이언트는 서버에 요청을 보내고, 서버는 해당 요청에 대한 응답을 보낸다.
  • 무상태성: 요청 간 서버는 클라이언트의 상태를 저장하지 않는다. 각 요청은 독립적으로 처리된다.
  • HTTP 메서드 사용: 자원에 대해 GET, POST, PUT, DELETE 등의 HTTP 메서드를 사용하여 CRUD 작업을 수행한다.
  • GET: 서버에서 데이터를 가져올 때 사용합니다.
  • POST: 서버에 데이터를 보낼 때 사용합니다.
  • PUT: 서버의 데이터를 업데이트할 때 사용합니다.
  • DELETE: 서버의 데이터를 삭제할 때 사용합니다.

REST API는 표준화된 방식으로 클라이언트와 서버 간의 통신을 돕는다. 각 자원은 고유한 URL로 표현되고, 이를 HTTP 메서드로 제어한다.

FastAPI란?

FastAPI는 Python 언어를 사용하여 RESTful API를 빠르고 쉽게 만들 수 있는 웹 프레임워크다. 주로 비동기 웹 애플리케이션을 구축하는 데 사용된다.

  • 간단한 코드 작성: FastAPI는 타입 힌팅과 Pydantic을 사용하여 데이터 검증 및 API 정의를 단순화한다.
  • 비동기 처리 지원: FastAPI는 비동기 처리를 통해 높은 성능을 제공하며, 많은 양의 요청을 효율적으로 처리할 수 있다.
  • 자동 문서화: FastAPI는 Swagger UI와 ReDoc을 이용하여 자동으로 API 문서를 생성한다. 이를 통해 API를 쉽게 테스트하고 이해할 수 있다.

FastAPI 예시 코드

다음은 FastAPI로 REST API를 간단히 작성한 예시이다:

from fastapi import FastAPI

app = FastAPI()

# 기본 경로('/')에 대한 GET 요청 처리
@app.get("/")
async def read_root():
    return {"message": "Hello, World!"}

# 경로 파라미터를 이용한 사용자 정보 조회
@app.get("/users/{user_id}")
async def read_user(user_id: int):
    return {"user_id": user_id}
  • @app.get("/"): HTTP GET 요청을 처리하며, 기본 경로에 접근하면 "Hello, World!" 메시지를 반환한다.
  • @app.get("/users/{user_id}"): 경로 파라미터를 사용하여 특정 사용자 정보를 반환한다.

REST API와 FastAPI의 비교

항목REST APIFastAPI
정의정보를 주고받기 위한 규칙REST API를 쉽게 구현하기 위한 도구
데이터 처리 방식주로 동기 처리비동기 처리 가능, 높은 성능 지원
문서화수동 작성 필요Swagger를 통한 자동 문서화 지원

요약

REST API는 정보 교환을 위한 규칙이며, FastAPI는 이를 쉽게 구현할 수 있도록 돕는 Python 기반 웹 프레임워크이다. FastAPI는 간단한 코드 작성, 비동기 처리, 자동화된 문서 생성을 지원하여 빠른 개발과 높은 성능을 제공한다.


참고

구분동기 처리비동기 처리
처리 방식한 번에 하나의 작업만 순차적으로 처리여러 작업을 동시에 처리 가능
적합한 작업CPU 집중 작업 (계산 등)I/O 집중 작업 (네트워크 요청, 파일 입출력 등)
효율성작업 간 대기 시간이 발생할 수 있음비대기 처리로 작업 효율이 높아짐
구현 난이도코드 작성과 이해가 쉬움코드가 복잡해질 수 있음
profile
안녕하세요.

0개의 댓글