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

 

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๋ฒˆ์ด ์‚ญ์ œ๋˜์—ˆ๋‹ค