Python FastAPI 시작

5697 단어 JSON파이썬FastAPI

소개



Tornado의 소개 기사를 쓰고 있어 APIServer라고 해도 좋은 야한 사감을 말했습니다만
APIServer라면 이, FastAPI도 매우 좋기 때문에 기사로 해 보았습니다

대상



풀 스택 엔지니어, 프론트 엔지니어, 앞으로 공부하고 싶은 사람, 파이썬을 좋아하는 사람
python3.6 이상이 설치되어 있음

목표



설치~간단한 JSON을 출력할 수 있을 때까지
Swagger에서의 표시

FastAPI란?



후발적인 WebFramework만 있어 현대적인 기능, 퍼포먼스의 높이를 의식한 것이 되고 있다

이하 공식
- 고속: NodeJS 및 Golang과 동등한 성능
- 개발 효율 UP
- 간단 : 사용하기 쉽고 학습하기 쉽도록 설계되었습니다.
(문서를 읽는 시간이 단축 ... 영어이지만
- 자동 대화형 문서(Swagger UI)

설치



FastAPI 설치는 pip 전용
$ pip install fastapi uvicorn

pip는 매우 우수한 녀석이라고 매번 생각합니다 (코피 페)
이번에는 ASGI Server가 되는 uvicorn도 install

Hello World



이것은 역시 공식입니다.

main.py
from fastapi import FastAPI

app = FastAPI()

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

시작 및 탐색



터미널에서
$ uvicorn main:app --reload --host 0.0.0.0

reload 옵션은 소스 변경시 자동으로 reload해 주는 것
host 옵션에 0.0.0.0을 지정하고 있는 것은 Docker나 VM로 기동해, PortForward 하는 대충

자세한 내용은 여기



simple JSON



또한 조금 코드를 추가하여 간단한 API처럼 보입니다.
localhost : 8000/docs에 액세스하기 만하면 Swagger를 볼 수 있습니다.

출처



main.py
from fastapi import FastAPI
from typing import Optional

app = FastAPI()

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

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

@app.get("/booklist")
def read_books():
    books = [
        {'name': 'book1', 'price': 1500},
        {'name': 'book2', 'price': 1800},
        {'name': 'book3', 'price': 2300},
    ]
    return books


좋은 웹페이지 즐겨찾기