본문 바로가기

CLOUD

Python으로 REST API 서버 구축하기

반응형
728x90

 

1.Flask 설치하기

 

pip install flask

 

 

 

 

2. Rest API 설계하기

 

아래와 같이 간단한 REST API를 설계해보겠습니다.

  • GET /api/hello : "Hello, World!" 문자열 반환
  • GET /api/items : 모든 아이템 조회
  • GET /api/items/{id} : 특정 아이템 조회
  • POST /api/items : 새로운 아이템 생성
  • PUT /api/items/{id} : 특정 아이템 수정
  • DELETE /api/items/{id} : 특정 아이템 삭제

 

 

3. Flask 애플리케이션 구현하기

 

 

from flask import Flask, jsonify, request

app = Flask(__name__)

items = [
    {"id": 1, "name": "apple", "price": 1000},
    {"id": 2, "name": "banana", "price": 1500},
    {"id": 3, "name": "orange", "price": 2000}
]

# GET /api/hello
@app.route("/api/hello")
def hello():
    return "Hello, World!"

# GET /api/items
@app.route("/api/items")
def get_items():
    return jsonify(items)

# GET /api/items/{id}
@app.route("/api/items/<int:item_id>")
def get_item(item_id):
    for item in items:
        if item["id"] == item_id:
            return jsonify(item)
    return jsonify({"message": "Item not found"}), 404

# POST /api/items
@app.route("/api/items", methods=["POST"])
def create_item():
    item = request.get_json()
    items.append(item)
    return jsonify(item), 201

# PUT /api/items/{id}
@app.route("/api/items/<int:item_id>", methods=["PUT"])
def update_item(item_id):
    item = request.get_json()
    for i in range(len(items)):
        if items[i]["id"] == item_id:
            items[i] = item
            return jsonify(item)
    return jsonify({"message": "Item not found"}), 404

# DELETE /api/items/{id}
@app.route("/api/items/<int:item_id>", methods=["DELETE"])
def delete_item(item_id):
    for i in range(len(items)):
        if items[i]["id"] == item_id:
            del items[i]
            return jsonify({"message": "Item deleted"}), 200
    return jsonify({"message": "Item not found"}), 404

if __name__ == "__main__":
    app.run(debug=True)

 

 

4. REST API 서버 실행하기

 

python app.py

 

 

 

5. REST API 서버 테스트 하기

 

 

 

 

 

 

 

 

 

 

 

반응형