FastAPI.1

BodeulMaNN·2022년 12월 9일
0

FastAPI

목록 보기
1/8

FastAPI는 Python 기반으로 Flask와 같은 개발 편의성에 NodeJS, GO와 같은 성능과 안정성을 갖춘 WebFramework이다.
"FastAPI는 표준 파이썬 타입 힌트를 바탕으로 한 파이썬 3.6이상에서 작동하는, 현대적이고 빠른(고성능) API 서버 웹 프레임워크다." 라고 정의 내일 수 있다.

공식 페이지에서 언급하는 Key Feature는

  • Fast / Fast to code / Fewer bugs / Intuitive / Easy / Short / Robust / Standards-based

특징은 다음과 같다.

  • Starlette 프레임워크를 기반으로 한 비동기 API 서버 지원
  • Pydantic을 사용한 Data validation 지원
  • API Swagger, ReDoc 등을 사용한 API document 자동 생성 지원
  • Python3.6+ Type Hinting 지원
  • 빠름: (Starlette과 Pydantic 덕분에) NodeJS 및 Go와 대등할 정도로 매우 높은 성능. 사용 가능한 가장 빠른 파이썬 프레임워크 중 하나.
  • 빠른 코드 작성: 약 200%에서 300%까지 기능 개발 속도 증가.
  • 적은 버그: 사람(개발자)에 의한 에러 약 40% 감소.
  • 직관적: 훌륭한 편집기 지원. 모든 곳에서 자동완성. 적은 디버깅 시간.
  • 쉬움: 쉽게 사용하고 배우도록 설계. 적은 문서 읽기 시간.
  • 짧음: 코드 중복 최소화. 각 매개변수 선언의 여러 기능. 적은 버그.
  • 견고함: 준비된 프로덕션 용 코드를 얻으십시오. 자동 대화형 문서와 함께.
  • 표준 기반: API에 대한 (완전히 호환되는) 개방형 표준 기반: OpenAPI (이전에 Swagger로 알려졌던) 및 JSON 스키마.

FastAPI에서 지원하는 기능은 다음과 같다.

  • Headers, Cookies, Form Fields, Files 등에 파라미터 정의 기능
  • maximum_length, regex 와 같은 validation constraints 설정 가능
  • 사용하기 쉬운 의존성 주입
  • OAuth2, JWT Tokens 및 HTTP Basic Auth 기능을 포함한 보안과 인증 기능
  • Pydantic 덕에 가능해진 중첩 JSON 모델 선언
  • Starlette 덕에 가능해진
    • WebSockets
    • GraphQL
    • requests와 pytest 를 기반으로 한 극도로 쉬운 테스트
    • CORS
    • Cookie Sessions

설치

pip install fastapi

프로덕션을 위해 Uvicorn을 설치한다.
pip install uvicorn

예시로 다음과 같은 가장 기본적인 파일을 만들 수 있다.

from typing import Union

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

cmd 및 터미널에서 서버를 실행한다.

uvicorn main:app --reload
VSC에서는
.\uvicorn main:app --reload
라고 입력한다.
profile
반갑습니다

0개의 댓글