Python 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.pyfrom 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.pyfrom 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
Reference
이 문제에 관하여(Python FastAPI 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sin_hayasi/items/cec8519cc34f7fbfbc75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
후발적인 WebFramework만 있어 현대적인 기능, 퍼포먼스의 높이를 의식한 것이 되고 있다
이하 공식
- 고속: NodeJS 및 Golang과 동등한 성능
- 개발 효율 UP
- 간단 : 사용하기 쉽고 학습하기 쉽도록 설계되었습니다.
(문서를 읽는 시간이 단축 ... 영어이지만
- 자동 대화형 문서(Swagger UI)
설치
FastAPI 설치는 pip 전용
$ pip install fastapi uvicorn
pip는 매우 우수한 녀석이라고 매번 생각합니다 (코피 페)
이번에는 ASGI Server가 되는 uvicorn도 install
Hello World
이것은 역시 공식입니다.
main.pyfrom 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.pyfrom 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
Reference
이 문제에 관하여(Python FastAPI 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sin_hayasi/items/cec8519cc34f7fbfbc75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ pip install fastapi uvicorn
이것은 역시 공식입니다.
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.pyfrom 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
Reference
이 문제에 관하여(Python FastAPI 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sin_hayasi/items/cec8519cc34f7fbfbc75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
Reference
이 문제에 관하여(Python FastAPI 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sin_hayasi/items/cec8519cc34f7fbfbc75텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)