Post

FastAPI 공식문서 따라하기[2] - 첫걸음

https://fastapi.tiangolo.com/ko/ 공식문서 따라하는 글

☑️ 1. 기초

1
2
3
4
5
6
7
8
9
# main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root() :
    return {"Im" : "kms first_step!!"}

1
$ uvicorn main:app --reload

이전 포스트에서 설명했으므로 설명은 스킵

☑️ 2. OpenAPI

FastAPI는 API를 정의하기 위한 OpenAPI 표준을 이용해 스키마를 생성.

  • API스키마 : API경로, 가능한 매개변수 등을 포함.
  • Data스키마 : JSon처럼 어떤 데이터의 형태

http://127.0.0.1:8000/openapi.json 을 통해 스키마를 확인할 수 있다.

☑️ 3. 리뷰

위의 코드

1
2
3
4
5
6
7
8
9
# main.py
1 from fastapi import FastAPI

2 app = FastAPI()

3 @app.get("/")
4 def read_root() :
5    return {"Im" : "kms first_step!!"}

를 기준으로 한줄 한줄 설명 합니다.

  • 1 FastAPI import : FastAPIStarlette를 직접 상속하는 클래스로, Starlette의 모든 기능을 사용할 수 있다.
  • 2 FastAPI Instance 생성 : 만약 app = FastAPI()mytestapp = FastAPI()로 바꾼다면
1
2
3
uvicorn main:app --reload 
#에서
uvicorn main:mytestapp --reload

로 바꿔 써야한다.

  • 3 경로 : (Post, Get, Put, Delete …)
    • 여기에 쓰인 @app.get("/")처럼 @가 달린것을 데코레이터라고 불림.
    • @app.post(), @app.put(), @app.delete, @app.option(), @app.head(), @app.patch(), @app.trace() 등 지원.
  • 4 경로 동작 함수 정의 :
    • 경로 : ‘/’
    • 동작 : ‘get’
    • 함수 : @app.get("/") 아래에 있는 기능들.
    • async 사용가능.
  • 5 콘텐츠 반환 :
    • dict, list, str 등.. 반환 가능.
This post is licensed under CC BY 4.0 by the author.