본문 바로가기

728x90
반응형

fastapi

(14)
[FastAPI] 배포 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. FastAPI의 배포는 비교적 쉽다. 버전 FastAPI, Starlette, Pydantic의 버전이 호환되도록 설정한다. Release Notes - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com 배포 배포에 앞서 이 부분들을 신경써야한다. Security - HTTPS Running on Start Up Restarts Replication(the number of processes running) Memory Previous steps before starting Secur..
[FastAPI] Metadata Docs, Testing, Debugging 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. Metadata Docs /docs로 접속했을 때 나오는 Swagger UI 페이지에 Metadata를 추가할 수 있다. FastAPI()에 매개변수를 전달하면 된다. Parameter Type Description title str API의 제목 summary str API 요약 description str API 설명 version string API 버전 terms_of_service str API의 약관의 URL contact dict API 관련 연락정보, fields -> (name:str, url:str, email:str) license_info dict API 관련 라이센스 정보, fields -> (name:str, id..
[FastAPI] Template 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. html에 jinja2 Template을 사용할 수 있다. context를 사용하여 편하게 페이지를 꾸밀 수 있다. pip install jinja2 templates 폴더와 static 폴더를 만든다. templates 폴더에는 html 파일을 static 폴더에는 정적 파일을 넣는다. Item ID: {{ id }} StaticFiles를 사용하여 정적 파일(css, js, img, ...)을 관리할 수 있다. StaticFiles를 import하고 app에 특정경로에 StaticFiles() 인스턴스를 Mount한다. from fastapi import FastAPI from fastapi.staticfiles import Stati..
[FastAPI] Background Task 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. FastAPI에서 Back Ground Task는 무거운 작업을 Back Ground로 돌려서 처리할 때 사용한다. ex. 작업 수행후 이메일 전송, 데이터 처리 이러한 작업들은 별도로 천천히 처리해도 되는 작업들에게 사용한다. * 엄청 무거운 작업들은 완전 별도(Multi Processing)로 처리하는 것이 좋다. 사용방법은 fastapi에 BackgroundTasks 개체에 add_task()에 작업(함수)을 매개변수로 전달한다. 백그라운드 작업에 대한 의존성도 추가할 수 있다. from typing import Union from fastapi import BackgroundTasks, Depends, FastAPI app = Fa..
[FastAPI] 파일 분할 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. FastAPI로 코드를 작성할 때 기능이 많고 규모가 크면 코드 관리가 힘들다. 이때는 파일을 분할하여 관리하는 것이 바람직하다. 다음과 같이 파일을 분리한다. routers - API 엔드포인트 from fastapi import APIRouter router = APIRouter() @router.get("/users/", tags=['users']) async def read_items(): return [{'username': 'Abdule'}, {'username': 'Bubi'}, {'username': 'Collson'}] @router.get("/users/me", tags=['users']) async def read_us..

728x90
반응형