📝python flask에서 Resource 클래스를 이용한 API 서버 개발
API를 만들기 위한 클래스를 작성한다 (class란? 변수와 함수로 구성된 묶음)
※ 클래스는 상속이 가능하다
API를 만들기 위해서는 flask_restful 라이브러리의 Resource 클래스를 상속해서 만들어야 한다
API를 처리하는 함수 개발(HTTP Method를 보고 똑같이 만들어준다)
※ 쿼리문을 만들때는 MySQL Workbench에서 먼저 테스트하고 코드를 복사해 붙여넣는다
디버깅을 하면서(print) 코드를 작성해야 나중에 에러찾기에 고생을 덜 한다
# 만들 클래스 파라미터에는 Resource를 입력해준다
class RecipeListResource(Resource) :
# 파라미터에는 self를 입력해준다
def post(self) :
# 1. 클라이언트가 보내준 데이터가 있으면 그 데이터를 받아준다
data = request.get_json()
# 2. 이 레시피 정보를 DB에 저장해야한다
try :
# DB에 연결
connection = get_connection()
# 쿼리문 만들기
query = '''insert into recipe(name, description, num_of_servings, cook_time, directions)
values(%s, %s, %s, %s, %s);'''
# 쿼리에 매칭되는 변수 처리해주기(튜플로)
record = (data['name'], data['description'], data['num_of_servings'],
data['cook_time'], data['directions'])
# 커서를 가져온다
cursor = connection.cursor()
# 쿼리문을 커서로 실행한다
cursor.execute(query, record)
# 커밋해줘야 DB에 완전히 반영된다
connection.commit()
# 자원 해제
cursor.close()
connection.close()
# 에러 발생시 에러 내용을 프린트
except Error as e :
print(e)
cursor.close()
connection.close()
return {"result" : "fail", "error" : str(e)}, 500
# API를 끝낼때는 클라이언트에 보내줄 정보(json)와 http 상태코드를 리턴한다(보내준다)
return {"result" : "success"}, 200
※ 튜플을 입력해야하는 코드에 ,형식이 아니게(튜플이 아니게) 입력하면 에러가 발생함으로 주의
'Restful API' 카테고리의 다른 글
[Restful API] Python MySQL Connector select 해보기 (0) | 2023.01.04 |
---|---|
[Restful API] Python MySQL Connector insert 해보기 (0) | 2023.01.04 |
[Restful API] python flask app.py 파일 코딩 (0) | 2023.01.04 |
[Restful API] API를 테스트하기 위해 포스트맨(postman) 설치하기 (0) | 2023.01.04 |
[Restful API] 가상환경 설정, 프레임워크와 라이브러리 설치 (0) | 2023.01.03 |
댓글