REST API 2). FastAPI version으로 구현 방법.

DIORJJ·2024년 5월 5일

FastAPI

목록 보기
1/3
post-thumbnail

REST API 2). FastAPI version으로 REST API구현 방법에 대해 알아보자.

FastAPI로 RESTful API 구축하기

python 3.6 이상에서 사용.

용어 알고가기 

  • WSGI(Web Server Gateway Interface) : Web server와 Web application을 연결해주는 python framework. 대표 예는 gunicorn이 있다.
  • ASGI(Asynchronous Server Gateway Interface) : WSGI의 상위 호환. 대용량 트래픽을 처리하기 위한 비동기 처리 지원. 대표 예는 uvicorn
  • 먼저 우리가 사용할 웹 프레임워크 터미널에서 설치해줍니다.
-> pip install fastapi
  • 우리가 사용할 웹서버 설치해줍니다
->pip install uvicorn
  • 아래와 같은 코드를 터미널창에서 실행시키면 웹서버가 열리게 됩니다.
->uvicornmain:app --reload

다음으로 mian.py 파일을 만들어 아래와 같은 코드를 작성해줍니다.
이 코드는 API의 기본 구조와 데이터 모델을 설정하는 부분까지만 포함되어 있습니다. 실제로 API 엔드포인트를 추가하기 위해 @app.get(), @app.post(), @app.put(), @app.delete()와 같은 데코레이터를 사용하여 설명드리겠습니다.

GET 기능 (전체)

/posts/ 엔드포인트를 추가합니다. 이 엔드포인트는 GET 요청을 처리하며, 등록된 모든 블로그 포스트를 조회할 수 있습니다. 구체적으로, get_all_posts 함수는 posts 딕셔너리에 저장된 모든 포스트의 값을 리스트 형태로 반환합니다. 이렇게 하면 API를 통해 모든 블로그 포스트의 데이터를 JSON 배열 형태로 받아볼 수 있습니다.

조회 요청

http://127.0.0.1:8000/docs에 접속하면 개발자가 구현한 API 엔드포인트, 가능한 요청, 응답 예시 등을 시각적으로 탐색하고 테스트할 수 있게 해줍니다. Try it out -> Execute 를 누르면 데이터를 조회할 수 있습니다.

GET 기능 (개별 조회)

특정 블로그 포스트를 조회하는 엔드포인트를 추가합니다. /posts/{post_id} 경로를 통해, 클라이언트는 post_id를 사용하여 특정 포스트를 요청할 수 있습니다. 특정 post_id를 가진 블로그 포스트의 상세 정보를 요청할 수 있으며, 존재하지 않는 post_id를 요청할 경우 적절한 에러 메시지와 함께 404 에러 응답을 받게 됩니다.

결과

POST 기능

/posts/ 경로에 POST 요청을 보내면, 제공된 데이터를 사용하여 새 포스트를 생성합니다.

결과

마지막 예시로 PUT 기능

/posts/{post_id} 경로에 PUT 요청을 보내면, 지정된 post_id에 해당하는 포스트를 업데이트할 수 있습니다. 함수의 동작 방식은 다음과 같습니다.

결과

마찬가지로 Delete 기능또한 만들어 주면 됩니다.


마무리

java기반의 Spring 프레임워크에서 REST API 구현하는 방법과, FastAPI는 Python에서 RESTful API를 구축하기 위한 강력하고 빠른 프레임워크입니다. 이 글을 통해 기본적인 CRUD 작업을 수행하는 API를 만드는 방법과 http://127.0.0.1:8000/docs의 cURL을 이용해 이 API에 요청을 보내는 방법을 배웠습니다.



출처: https://hanab.kr/fastapi-%EC%82%AC%EC%9A%A9%EB%B2%95-restful-api-%EC%98%88%EC%A0%9C/#google_vignette

0개의 댓글