-
python flask로 간편하게 REST API 서버 만들기 - (2) 간단한 REST API 구현해보기IT/파이썬 응용 프로그래밍 2021. 9. 4. 00:04728x90SMALL
이제 Python flask를 활용해서 REST API를 만들어볼 차례이다.
(REST API에 대해 모르는 사람은 1편 참고 : https://2island.tistory.com/8)
1. 가상환경 세팅
우선은 venv를 활용해서 개발 환경을 만들어보자. venv를 활용하면 의존성 정보를 프로젝트마다 다르게 저장할 수 있다.
파이썬 3.3 이상을 사용하는 유저라면, venv가 기본적으로 탑재되어 있으므로, 따로 설치를 해주지 않아도 된다.
자신이 작업할 프로젝트 폴더로 이동한 후, 터미널에서 다음과 같은 명령을 내려보자.
python3 -m venv {가상환경 이름}
이렇게 명령을 내려주면 지정한 이름으로 가상환경이 생성된다.
가상환경 생성 후에는, 가상환경을 "활성화"를 시켜주어야한다. 활성화 시킬 수 있는 폴더는 생성된 가상환경 폴더 경로 안에 bin 폴더이다.
source ./{가상환경 이름}/bin/activate
터미널에서 위와 같이 명령을 내리면 활성화가 된다. (좌측에 괄호 안에 자신의 가상환경 이름이 나타나있으면 성공이다.)
작업을 완료한 후 에는 deactivate를 해주면 비활성화를 시킬 수 있다.
deactivate
2. Flask, flask-restx 설치
flask로 REST API를 구성하기 위해서는 먼저 flask를 설치해주어야 한다.
flask, flask-restx를 설치해주자.
pip install flask pip install flask-restx --------OR--------- pip3 install flask pip3 install flask-restx
이렇게 flask, flask-restx를 설치해주면, 앞서 설정한 가상환경에 설치가 된다. 이를 requirements.txt에 저장해두면
나중에 이 프로젝트를 다른 환경에 세팅할 때 requirements.txt에 저장된 의존성 정보를 통해 쉽게 환경을 세팅할 수 있다.
아래 명령어대로 터미널에 치면 requirements.txt 파일이 생성되면서 의존성 정보가 저장되는 것을 볼 수 있다.
pip freeze > requirements.txt
3. 코딩
이제 본격적으로 코딩을 해볼 차례이다. 자신이 사용하는 에디터를 열어서 코드를 작성해보자.
먼저, app.py 파일을 생성해주고, 아래와 같이 코드를 작성해보자.
from flask import Flask from flask_restx import Api, Resource app = Flask(__name__) api = Api(app) @api.route('/test') class Test(Resource): def get(self): return "Hello World!" if __name__ == "__main__": app.run(debug=True, host='0.0.0.0', port=3000) #debug모드로, 3000번 포트로 서버를 띄운다
@api.route('/test')는 URI가 /test이고, HTTP Method가 get인 API를 받아들이는 부분을 구현한 것이다.
HTTP Method를 GET으로 설정하고, "http://localhost:3000/test"로 요청을 보내보면 "Hello World!" 문자열이 응답으로 오는 것을 알 수 있다. 테스트는 포스트맨(https://www.postman.com/)을 사용해서 할 수 있다.
포스트맨을 설치 후, Request를 만들어서 아래처럼 설정한 후, Send 버튼을 누르면 요청이 보내지고 응답이 오는 것을 알 수 있다.
실패 없이, 응답이 제대로 온다면 간단한 API 서버 구축에 성공한 것이다! 위 코드에 def 함수 안에 응답을 보낼 수 있도록 로직을 넣으면 API가 완성이 된다. DB를 연동해서 CRUD 작업을 하는 API는 3편에서 알아보자.
728x90LIST'IT > 파이썬 응용 프로그래밍' 카테고리의 다른 글
디스코드 봇 만들기 (4) - 이벤트를 활용하여 인사 기능 만들어보기 (2) 2021.09.17 디스코드 봇 만들기 (3) - 커스텀 명령어 만들어보기 (0) 2021.09.16 디스코드 봇 만들기 (2) - 로컬 서버로 봇 활성화 시키기 (0) 2021.09.15 디스코드 봇 만들기 (1) - 봇 서버에 추가 (0) 2021.09.14 python flask로 간편하게 REST API 서버 만들기 - (1) REST API란? (0) 2021.09.02