[FastAPI] 정리 노트 - 2

API 구현 방법

Intro


종단 API 만들기

이전에 설정한 폴더를 파이참으로 실행한 후 인터프리터 설정을 해줘야 합니다. Python최신 버전으로 선택한 후 venv 환경을 활성화한 상태에서 진행합니다.

python
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def first_api():
    return {"message": "Helloo LIM!"}

위와 같은 코드를 작성한 후 uvicorn을 이용해 웹서버로 실행합니다.

bash
> uvicorn books:app --reload

이후 127.0.0.1/ 경로로 GET 요청을 보내면 아래와 같은 데이터를 받을 수 있게되죠.

json
{"message": "Helloo LIM!"}

아래와 같은 방법으로 uvicorn을 사용하지 않고도 fastapi를 이용해 실행할 수도 있습니다.

bash
> fastapi run books.py
INFO     Using path books.py                                                                                                                                      
INFO     Resolved absolute path /Users/wooglim/dev/fast_api/fastapi/books.py                                                                                      
INFO     Searching for package file structure from directories with __init__.py files                                                                             
INFO     Importing from /Users/wooglim/dev/fast_api/fastapi                                                                                                       
                                                                                                                                                                  
 ╭─ Python module file ─╮                                                                                                                                         
 │                      │                                                                                                                                         
 │  🐍 books.py         │                                                                                                                                         
 │                      │                                                                                                                                         
 ╰──────────────────────╯                                                                                                                                         
                                                                                                                                                                  
INFO     Importing module books                                                                                                                                   
INFO     Found importable FastAPI app                                                                                                                             
                                                                                                                                                                  
 ╭─ Importable FastAPI app ─╮                                                                                                                                     
 │                          │                                                                                                                                     
 │  from books import app   │                                                                                                                                     
 │                          │                                                                                                                                     
 ╰──────────────────────────╯                                                                                                                                     
                                                                                                                                                                  
INFO     Using import string books:app                                                                                                                            
                                                                                                                                                                  
 ╭─────────── FastAPI CLI - Production mode ───────────╮                                                                                                          
 │                                                     │                                                                                                          
 │  Serving at: http://0.0.0.0:8000                    │                                                                                                          
 │                                                     │                                                                                                          
 │  API docs: http://0.0.0.0:8000/docs                 │                                                                                                          
 │                                                     │                                                                                                          
 │  Running in production mode, for development use:   │                                                                                                          
 │                                                     │                                                                                                          
 │  fastapi dev                                        │                                                                                                          
 │                                                     │                                                                                                          
 ╰─────────────────────────────────────────────────────╯                                                                                                          
                                                                                                                                                                  
INFO:     Started server process [15845]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)