RestFul API

Flask(ํ”Œ๋ผ์Šคํฌ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MySQL DB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ(DELETE)ํ•˜๋Š” API ๋งŒ๋“ค๊ธฐ

567Rabbit 2024. 5. 21. 16:52

 

์ดˆ๊ธฐ DB ๋ฐ์ดํ„ฐ

 

 

 

 

 

( recipes/6 ) ์ฆ‰,  id = 6์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋ ค๊ณ  ํ•œ๋‹ค. 

 

 


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 ์ž‘์„ฑํ•˜๊ธฐ

 

bash
๋‹ซ๊ธฐ
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 delete(self, recipe_id) : โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹print(recipe_id) โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹try: โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹connection = get_connection() โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹query = '''DELETE FROM recipe WHERE id = %s;''' โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹record = (recipe_id,) # ํŠœํ”Œ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์ฝค๋งˆ ๋„ฃ์–ด์ค€๋‹ค โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹cursor = connection.cursor() โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹cursor.execute(query, record) โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹connection.commit() โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹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 ์—๋Ÿฌ โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹return {'result': 'success'}

 

 

 

 

ํŒŒ์ผ์„ ์ €์žฅํ•˜์—ฌ vscode ํ„ฐ๋ฏธ๋„ cmd ์ฐฝ์— flask run ํ•˜๊ณ ,

 

send๋ฅผ ๋ˆ„๋ฅด๋ฉด "result" : "success" ๋ผ๊ณ  ๋œฌ๋‹ค.

 

 

 

 

 

 

DB์— ๊ฐ€๋ณด๋ฉด id 6๋ฒˆ์ด ์‚ญ์ œ๋˜์—ˆ๋‹ค