새로운 프로젝트와 FAST API

Yun·2021년 3월 25일
0

회사에서 새로운 프로젝트를 시작하게 되었고 백엔드 포지션을 맡았습니다. 요즘 자바스크립트를 공부하고 있었지만 기존에 AI API가 python 으로 되어 있어서 flask, django 중에 고민을 하다가 프론트엔드 분과 협업함에 있어서 문서를 자동으로 적어주고 타입 체킹이 있는 FAST API 를 선택하게 되었습니다.

앞으로의 FAST API 와 관련된 글들은 제가 공부를 하면서 메모? 및 복습용 이므로 설명이 다소 부족할 수 있습니다 양해해주세요!

FAST API QUICK START

FAST API 공식문서

공식문서를 참조하였습니다.

main.py 파일을 생성합니다.

저는 아나콘다를 사용해 가상환경을 만들어 사용했는데 기존에 환경을 쓰시거나 파이썬 가상환경을 쓰셔도 상관없습니다.

pip install fastapi
pip install 'unicorn[standard]'

설치를 하신뒤

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}

main.py 파일에 입력합니다.

Run the live server

unicorn main:app --reload

reload 라는 옵션을 주면 코드가 변경되면 즉시 반영 됩니다.

localhost:8000/docs

를 가셔서 직접 GET 요청을 보낼수 도 있고 POSTMAN 을 사용하셔도 무방합니다.

GET FastAPI

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}

여기서 app변수는 클래스의 인스턴스가 됩니다 FastApi
이것은 모든 API를 생성하기위한 주요 상호 작용 지점이 될 것입니다.

다음과 같이 앱을 만드는 경우

from fastapi import FastAPI

my_awesome_api = FastAPI()


@my_awesome_api.get("/")
async def root():
    return {"message": "Hello World"}

uvicorn main:my_awesome_api --reload

경로 작업 생성

여기서 '경로'는 처음부터 시작하는 URL의 마지막 부분을 나타냅니다

따라서 다음과 같은 URL에서

https://example.com/items/foo
... 경로는 다음과 같습니다.

/items/foo

"경로"는 일반적으로 "엔드 포인트"또는 "루트"라고도합니다.

API를 빌드 할 때 일반적으로 이러한 특정 HTTP 메서드를 사용하여 특정 작업을 수행합니다.

일반적으로 다음을 사용합니다.

  • POST: 데이터를 생성합니다.
  • GET: 데이터를 읽습니다.
  • PUT: 데이터를 업데이트합니다.
  • DELETE: 데이터를 삭제합니다.

경로 연산 데코레이터 정의

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}

는 @app.get("/")말한다 FastAPI를 함수가 바로 아래로 이동 요청을 처리 담당입니다 :

  • 경로 /
  • 사용하여 get작동

다른 작업을 사용할 수도 있습니다.

  • @app.post()
  • @app.put()
  • @app.delete()

그리고 더 이국적인 것들 :

  • @app.options()
  • @app.head()
  • @app.patch()
  • @app.trace()
profile
개발 재밌따..ㅎ

0개의 댓글