본문 바로가기
API/MySQL API

게시글 비공개,공개하는 API

by 하니__ 2024. 5. 21.

 

 

테이블을 만들 당시

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