<Python> RESTful API 개발과 사용
- Developer/Python
- 2023. 8. 16.
반응형
웹 기반 서비스에서, 데이터 리소스를 가져오고 처리하는 데 사용할 수 있는 인터페이스를 제공하는 방법 중 하나로 RESTful API가 있습니다.
이 글에서는 파이썬에서 RESTful API를 개발하고 사용하는 방법에 대해 알아봅니다.
RESTful API란?
RESTful API는 REST(REpresentational State Transfer)를 따르는 웹 API입니다. REST는 웹 서비스 및 웹 서버와 클라이언트 간 통신 디자인 아키텍처 원리의 집합입니다. RESTful API를 사용하면 웹 서비스 상의 자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행할 수 있습니다.
API 개발을 위한 라이브러리 설치
파이썬에서 RESTful API를 구현하려면 Flask와 Flask-RESTful, 이 두 가지 라이브러리를 사용할 수 있습니다. 설치는 다음 명령어를 사용해 진행합니다.
pip install Flask Flask-RESTful
Flask-RESTful을 사용한 간단한 API 생성
먼저 기본 틀을 사용한 간단한 API를 만들어 봅니다.
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {"message": "Hello, World!"}
api.add_resource(HelloWorld, '/')
if __name__ == '__main__':
app.run(debug=True)
이제 Flask 애플리케이션을 실행하면, 루트 URL 즉, /
에서 HelloWorld
리소스를 반환하는 API를 사용할 수 있습니다.
데이터 리소스 생성 및 작업
목록 형태의 데이터를 리소스로 사용하면서 GET, POST, PUT, DELETE 메소드를 구현해 봅니다.
from flask import Flask, request
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
items = []
class Item(Resource):
def get(self, item_name):
item = next(filter(lambda x: x["name"] == item_name, items), None)
return {"item": item}, 200 if item else 404
def post(self, item_name):
if next(filter(lambda x: x["name"] == item_name, items), None):
return {"message": f"An item with name '{item_name}' already exists."}, 400
data = request.get_json()
item = {"name": item_name, "price": data["price"]}
items.append(item)
return item, 201
def put(self, item_name):
data = request.get_json()
item = next(filter(lambda x: x["name"] == item_name, items), None)
if item is None:
item = {"name": item_name, "price": data["price"]}
items.append(item)
else:
item.update(data)
return item
def delete(self, item_name):
global items
items = list(filter(lambda x: x["name"] != item_name, items))
return {"message": "Item deleted"}
api.add_resource(Item, "/item/<string:item_name>")
if __name__ == "__main__":
app.run(debug=True)
이 API는 다음 기능을 수행할 수 있습니다:
- 아이템 이름으로 아이템 조회(GET)
- 아이템 추가(POST)
- 아이템 정보 갱신(PUT)
- 아이템 삭제(DELETE)
API 사용하기
이제 애플리케이션을 실행하고 웹 브라우저, Postman, 또는 curl과 같은 도구를 사용하여 API 요청을 보낼 수 있습니다.
감사합니다.
'Developer > Python' 카테고리의 다른 글
<Python> 소켓 통신 (0) | 2023.08.17 |
---|---|
<Python> 클라우드 서비스와 파이썬 (0) | 2023.08.16 |
<Python> SQLAlchemy 사용법 (0) | 2023.08.15 |
<Python> 웹 스크래핑을 위한 BeautifulSoup 사용법 (0) | 2023.08.15 |
<Python> JSON 데이터처리 (0) | 2023.08.14 |