결과 미리보기
DB와 postman을 연동하는 방법은 아래 글을 참고한다
https://codebunny99.tistory.com/87
MySQL DB 설계, 연동하여 RestFul API로 GET하기(DB에 있는 데이터 가져오는 API)
Postman GET의 Request는 Query String(Query Parameters)을 사용한다- offset : 0- limit : 25 DB 설계하기 코드 입력하고 실행하기 (비밀번호 부분 수정해서 입력한다)-- recipe_db 에만 전용으로 접속할 수
codebunny99.tistory.com
VSCode
app.py 작성하기
<int : recipe_id> 이렇게 작성하는 것을 Flask(플라스크) 라고 한다
Flask는 Python으로 작성된 경량 웹 프레임워크로, 간단한 웹 애플리케이션이나 API를 신속하게 구축하는 데 사용된다. Flask에서는 URL 경로를 라우트(route)라고 하며, 특정 경로로 접근했을 때 실행될 함수를 정의할 수 있다.
recipe.py 작성하기
from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error
class RecipeResource(Resource):
# 특정 id의 레시피 불러오는 API
def get(self, recipe_id):
# 1. 클라이언트로부터 데이터를 받는다
print(recipe_id)
# 2. DB로부터 데이터를 가져온다
try:
connection = get_connection()
print('커넥션 실행')
query = '''SELECT * FROM recipe WHERE id = %s;'''
record = (recipe_id,) # 튜플로 만들어주기 위해서 콤마 넣어준다
cursor = connection.cursor(dictionary=True)
print('커서 가져오기 성공')
cursor.execute(query, record)
print('쿼리문 실행')
result_list = cursor.fetchall()
print(result_list)
cursor.close()
connection.close()
except Error as e:
if cursor is not None: # null이 아니면
cursor.close()
if connection is not None:
connection.close()
return {'result': 'fail', 'error': str(e)}, 500 # 500 에러
# 3. 응답할 데이터를 json으로 만들어서 응답한다
for row in result_list:
row['createdAt'] = row['createdAt'].isoformat()
row['updatedAt'] = row['updatedAt'].isoformat()
# 결과가 없는 경우에 대한 처리
if not result_list:
return {'result': 'fail', 'error': '해당 아이디는 존재하지 않습니다.'}, 404
return {'items': result_list[0], 'result': 'success'}
DB에 없는 id를 호출하면 "해당 아이디는 존재하지 않습니다" 라는 에러메시지를 뜨게 하였다.
모든 파일을 저장하여 vscode 터미널 cmd 창에 flask run 하면 결과를 볼 수 있다.
# 결과가 없는 경우에 대한 처리의 결과
'RestFul API' 카테고리의 다른 글
Flask(플라스크)를 사용하여 MySQL DB의 데이터를 삭제(DELETE)하는 API 만들기 (0) | 2024.05.21 |
---|---|
Flask(플라스크)를 사용하여 MySQL DB의 데이터를 수정(PUT)하는 API 만들기 (0) | 2024.05.21 |
MySQL DB를 RestFul API와 연결하고 Postman으로 실행하기 + Get API (0) | 2024.05.21 |
RestFul API에서 POST하기(클라이언트가 데이터 입력하면 DB에 저장하기) : mysql_connection와 config 파일 만들기 (0) | 2024.05.20 |
Python Flask(플라스크) 설치하고 VSCode 작성하여 서버 만들기 (0) | 2024.05.20 |