일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Refactoring
- 이더리움
- fluent python
- RabbitMQ
- Container
- rust
- docker
- 러스트
- function
- 플랫폼
- 백준
- IMAGE
- 코어 이더리움 프로그래밍
- AWS
- 전문가를 위한 파이썬
- Ethereum
- 블록체인
- Kubernetes
- Thread
- BAEKJOON
- Fast API
- 파이썬
- BlockChain
- Algorithm
- 알고리즘
- dockerfile
- 동시성
- guru
- Network
- Python
Archives
- Today
- Total
글쓰기 | 방명록 | 관리 |
Victoree's Blog
[1] Fast API로 한걸음! 본문
728x90
FastAPI는 Python 기반으로 Flask와 같은 개발 편의성에 NodeJS, Go와 같은 성능과 안정성을 갖춘 Web Framework이다.
공식 페이지에서 언급하는 Key Feature는 다음과 같다.
- Fast / Fast to code / Fewer bugs / Intuitive / Easy / Short / Robust / Standards-based
특징은 다음과 같다.
- Starlette 프레임워크를 기반으로 한 비동기 API 서버 지원
- Pydantic을 사용한 Data validation 지원
- API Swagger, ReDoc 등을 사용한 API document 자동 생성 지원
- NodeJS, Go와 대등할 정도로 매우 높은 성능
- Python3.6+ Type Hinting 지원
Fast API에서 지원하는 기능들로!
- 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
Installation
다음 명령어를 이용해 fastapi를 설치할 수 있다.
$ pip install fastapi
또한 웹 서버로 사용될 uvicorn 도 설치한다.
$ pip install uvicorn
uvicorn은 Uvloop과 httptools를 기반으로 구축된 ASGI 서버(어플리케이션을 로드하고 제공하는 서버)이다.
자세한 내용은 Uvicorn 공식 페이지를 참조한다.
main.py를 만들어 다음과 같이 작성하세요.
from typing import Optional
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root(): # `async def`로 선언가능
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None): # `async def`로 선언가능
return {"item_id": item_id, "q": q}
실행 명령어
uvicron main:app --reload
728x90
'Python > Fast API' 카테고리의 다른 글
[6] Middleware, Background Tasks, Sub Application in Fast API (0) | 2021.07.30 |
---|---|
[5] Dependency Injection이란? in Fast API (0) | 2021.07.22 |
[4] Pydantic Model (0) | 2021.07.22 |
[3] Fast API Basic - Response 편 (0) | 2021.07.20 |
[2] Fast API Basic - Request 편 (2) | 2021.07.20 |
Comments