FastAPI
웹 API를 빠르게 만들 수 있도록 해주는 프레임워크.
데이터베이스를 연결한다면, SQLAlchemy와 같은 외부 라이브러리를 통해 ORM 기능을 사용할 수 있다.
ORM(Object-Relational Mapping): 파이썬으로 데이터베이스 작업할 수 있게 해줌.
ORM(Object-Relational Mapping)은 객체 지향 프로그래밍 언어와 관계형 데이터베이스 사이의 불일치를 해소하기 위한 프로그래밍 기법. ORM을 사용하면 Python 객체를 통해 데이터베이스 작업을 수행할 수 있어, 데이터베이스 작업을 더 직관적이고 객체 지향적으로 만들 수 있습니다. 일반적으로 FastAPI와 함께 SQLAlchemy를 사용하는 경우가 많습니다.
https://www.merixstudio.com/blog/how-use-fastapi-microservices-python?iframe-embedded=1
How to use FastAPI for microservices in Python? | Merixstudio
Use this article as a guide on how to use FastAPI in Python to reap all the microservices' benefits.
www.merixstudio.com
Typer
명령줄 인터페이스(CLI)를 만드는 데 사용.
Typer는 Python의 타입 힌트를 기반으로 하여, FastAPI와 유사한 방식으로 CLI 애플리케이션을 개발할 수 있게 해주며, 사용자 친화적인 CLI를 빠르게 구축할 수 있습니다.
FastAPI 애플리케이션 작성
1) 가상환경 만들고, 패키지를 깔아준다.
pip install fastapi
pip install 'uvicorn[standard]'
2) 간단한 main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id}
넘 간단한 코드인데도 낯설다 너...
@app.get("/")
@app.get("/items/{item_id}")
여기서 ""사이에 있는 빨간 글씨 부분이 엔드포인트라고. 엔드포인트가 뭔데?
Endpoint는 API의 특정 정보나 기능에 접근할 수 있는 특정 URL(또는 URI). 클라이언트(웹브라우저, 모바일앱)가 서버와 통신할 수 있는 접점. 각 엔드포인트는 특정 작업이나 리소스와 연관되어 있다.
- 고유성: 각 엔드포인트는 특정 기능이나 리소스에 대해 고유한 접근점을 제공합니다.
- 구조화: URL 구조를 통해 리소스나 작업을 논리적으로 구성합니다.
- 동작 정의: HTTP 메서드(GET, POST, PUT, DELETE 등)와 결합하여 수행할 작업을 정의합니다.
@app.get(" /")
루트(root) 엔드포인트. 웹사이트의 메인 페이지와 같은 역할. http://주소주소.com 했을 때 나오는 페이지.
@app.get("/items/{item_id}"
특정 아이템에 대한 정보를 제공하는 엔드포인트. {item_id}는 동적 부분으로, 실제 요청시 특정 ID로 대체.
3) 실행
FastAPI 애플리케이션이 Uvicorn을 통해 실행되면, 여러분의 컴퓨터에서 웹 서버 프로그램이 시작됩니다.
이 서버는 8000번 포트에서 HTTP 요청을 "listen"(수신 대기)하고 있습니다.
브라우저에서 http://127.0.0.1:8000에 접속하면, 이 요청이 여러분의 FastAPI 애플리케이션으로 전달됩니다.
uvicorn main:app --reload
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
위 주소로 들어가보면 메인 페이지가 뜬다.
서버를 종료하려면 CTRL+C.
여기서 서버가 뭔데..
로컬 서버:
http://127.0.0.1:8000 또는 http://localhost:8000은 여러분의 컴퓨터에서 실행되는 로컬 서버를 가리킵니다.
Uvicorn이 여러분의 컴퓨터를 임시로 웹 서버로 만들어주는 것.
넓은 의미에서 '서버'는 요청을 받아 처리하고 응답을 보내는 프로그램 또는 컴퓨터를 말함.
3) 서버를 실행하는 또 다른 방법
프로그래밍 방식으로 직접 실행하기:
FastAPI 애플리케이션을 프로그램 내부에서 직접 실행하는 가장 일반적인 방법입니다.
import uvicorn
if __name__ == "__main__":
uvicorn.run("main:app", port=8000, log_level="info")
두 번째 방법은 더 복잡하지만 유연성과 제어력이 높아 대규모 또는 복잡한 프로젝트에서 유용합니다. 간단한 개발이나 빠른 테스트에는 첫 번째 방법이 더 적합할 수 있습니다.
'공부방 > Upstage AI Lab 4기' 카테고리의 다른 글
TinyBert Model로 문장 속 감정 분석하기 (3) | 2024.09.27 |
---|---|
[FastAPI] 이미지 분류하는 API 모델 서빙 따라하기 (1) | 2024.09.26 |
가상환경 깔고나서 가상환경이 있던 폴더 이름 바꾸지 말자!!! (0) | 2024.09.25 |
데이터프레임 merge할 때 중복값 때문에 shape이 망가진다면 (0) | 2024.09.25 |
위도와 경도를 기준으로 주변에 있는 공원 개수 구해주기 (0) | 2024.09.25 |