테이블을 만들 당시
is_publish 라는 컬럼을 만들어
기본값을 0을 주어
설정하지않으면 비밀글이 기본값으로 만들어져있어
임시저장으로 하게끔 만들어져 있다
이것을
수정하는 API를 만들어보자
API 설정
HTTP 메소드는
CRUD 중 수정으로 해야하니
Update인 PUT로 설정해주고
경로에는
특정 id에 접근을 해야하니 숫자는 있어야하고 추가 경로를 적어주자
그리고 파이썬으로 돌아가자
1. app.py에 추가 작성
api.add_resource(RecipePublishResource, '/recipes/<int:recipe_id>/publish')
2. recipe.py에 추가작성
class RecipePublishResource(Resource) :
3. PUT설정, DELETE 설정
PUT 하나만 설정 하게 되면
임시저장으로 되돌릴 순 없으니
임시저장으로 되돌릴 수 있도록
DELETE를 하나 만들도록 하자
def put(self, recipe_id) :
def delete(self, recipe_id):
4. DB연결 및 쿼리문 작성
try :
connection = get_connection()
query = '''update recipe
set is_publish = 1
where id = %s;'''
record = (recipe_id, )
DB에 연결을 한 뒤
쿼리문에는
is_publish가 기본값으로 0으로 설정 되어 있기때문에
1로 바꾼다면 비밀글,임시저장인 상태에서 해제가 된다
그렇기에 다시 임시저장으로 되돌리는
delete 설정값은 0으로 한다
5. 커서 불러오기, 실행, 커밋, 자원해제
cursor = connection.cursor()
cursor.execute(query,record)
connection.commit()
cursor.close()
connection.close()
6. 예외상황(에러) 처리
except Error as e:
if cursor is not None:
cursor.close()
if connection is not None:
connection.close()
return {"result" : "fail","error": str(e)}, 500
7. 클라이언트에게 JSON으로 리턴
return {"result" : "success"},200
'API > MySQL API' 카테고리의 다른 글
로그인 API (0) | 2024.05.22 |
---|---|
회원가입 API (0) | 2024.05.22 |
게시글 삭제API, delete (0) | 2024.05.21 |
게시글 수정API, update (0) | 2024.05.21 |
특정 게시글 읽는 API, select where (0) | 2024.05.21 |