API란???
API를 간단하게 요약하자면 "요청과 응답"이라고 할 수 있다.
가게마다 메뉴판이 다르고(API Documents) 내가 어떠한 요청을 할때에도 적합한 요청을 해야지만 정상적인 응답이 올것이다,예를 들어 만약 철물점에 들어가서 "돈가스 2개" 주세요. 라고 한다면 안 되고, 관계자 외 시설에 그냥 들어가려고 하면 제지당할 수 있듯이
API란 "적합한 요청"에 대한 "적합한 응답"을 돌려주는 인터넷에서의 약속이다.
FastAPI란???
FastAPI는 python을 사용해서 API를 빠르게 개발할때 사용하는 프레임워크(누군가 미리 만들어둔 코드)로 프로그래머가 만든 API를 자동으로 문서로 정리해주는 기능을 가지고 있다.
또한 Pydantic 모델을 사용하여 데이터 유효성을 검사하고, API 요청이 올바른 형식인지 쉽게 체크할 수 있습니다
Django와 Flask랑 다른게 뭐죠???
비슷한 역할을 하는 Django와 Flask와의 차이점은 아래와 같습니다.
FastAPI는 다른 프레임 워크들과 비교하여 비동기 처리를 원활하게 지원하는 점이 큰 차별화 포인트입니다. Flask는 기본적으로 동기 기반이기 때문에 많은 요청을 처리할 때 성능이 저하될 수 있습니다. 반면, FastAPI는 ASGI를 사용하여 비동기 처리를 통해 이러한 문제를 해결할 수 있습니다.
또한 FastAPI는 JSON Schema와 같은 강력한 데이터 검증 도구를 제공하므로, 데이터 처리 과정에서 발생할 수 있는 오류를 미리 예방할 수 있습니다.
3개 모두 훌륭한 프레임워크이고, 단순히 어디에 사용할건지에 따라 적합한 프레임워크를 고르기만 하면 되는거라 무엇을 써도 상관없다.
FastAPI 설치
python은 설치되어 있다고 할때 아래 코드를 치면 설치 끝이다.
pip install fastapi uvicorn
위 설치 명령어로 fastapi를 설치한 뒤 아래와 같은 코드를 작성하자
#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, "q": q}
위 코드로 작성한 main.py의 경로로 이동한 뒤 아래 명령어로 main.py를 실행하면 됩니다.
uvicorn main:app --reload
이후, 인터넷(크롬/익스플로러)의 주소창에 http://localhost:8000/ 라고 치면,
{
"Hello": "World"
}
가 출력됩니다.
FastAPI를 사용한 추천 개발 주제
FastAPI를 활용한 프로젝트 아이디어로는 다음과 같은 것들이 있습니다:
> 이커머스 API : 상품 등록, 업데이트, 삭제 및 조회 기능을 포함한 이커머스 플랫폼의 API.
> 소셜 미디어 API : 사용자 인증, 포스트 생성 및 조회 기능을 포함한 소셜 네트워킹 API.
> 데이터 분석 API : 데이터 입력 및 결과 출력을 위한 API로, 다양한 데이터 분석 기능을 제공.
참고 링크
FastAPI
FastAPI framework, high performance, easy to learn, fast to code, ready for production
fastapi.tiangolo.com
질문이 있다면 언제든 댓글에 남겨주시기 바랍니다 ^^
끝.
'프로그래밍' 카테고리의 다른 글
[Solved/해결완]nvm 한글 경로 nvm could not be found or does not exist. Exiting. (0) | 2025.02.26 |
---|---|
[깃허브 자동화]깃허브와 젠킨스를 활용한 CI/CD 파이프라인 구축: 상세 가이드 (0) | 2025.01.13 |
[도커/Docker]호스트에서 특정 컨테이너로 파일 전송하기 (0) | 2024.11.28 |
[개발자 주저리]개발자로 취업할때 알고 있어야 하는 것 정리 -1 (개발자는 취업해서 뭐함???) (2) | 2024.11.28 |
[유머] 개발자의 분노 (0) | 2024.05.26 |