REST API(Representational State Transfer Application Programming Interface)를 구축하면 웹을 통해 데이터에 액세스하고 데이터를 조작할 수 있다. 이번에는 각 단계를 설명하는 데 도움이 되는 샘플 코드와 함께 Python 프로그래밍 언어와 Flask 웹 프레임워크를 사용하여 REST API를 구축하는 과정을 알아보자.
Flask를 설치하고 새 프로젝트 디렉토리를 생성하여 시작한다. 그런 다음 새 Flask 애플리케이션을 만들고 필요한 종속성을 설정한다.
# Install Flask
pip install Flask
# Create project directory
mkdir my_api
cd my_api
# Create a new Flask application
from flask import Flask
app = Flask(__name__)
# Set up required dependencies
pip install flask-restful
응답할 HTTP 메서드 및 URL을 포함하여 API의 엔드포인트를 정의한다.
from flask_restful import Api
api = Api(app)
# Define endpoint for GET request
from flask_restful import Resource
class HelloWorld(Resource):
def get(self):
return {'hello': 'world'}
api.add_resource(HelloWorld, '/')
들어오는 요청을 구문 분석하고 요청을 이행하는 데 필요한 데이터를 추출한다.
from flask import request
class AddNumbers(Resource):
def get(self, num1, num2):
return {'result': num1 + num2}
api.add_resource(AddNumbers, '/add/<int:num1>/<int:num2>')
요청에서 추출한 데이터를 사용하여 필요한 작업을 수행하고 응답을 생성한다.
class User(Resource):
def get(self, username):
# retrieve user information from database
return {'username': username}
def post(self, username):
# add user to database
return {'username': username}
api.add_resource(User, '/user/<string:username>')
JSON 또는 XML과 같은 필수 형식으로 요청에 대한 응답을 생성한다.
from flask import jsonify
class TodoList(Resource):
def get(self):
# retrieve todo list from database
todos = [{'task': 'do laundry'}, {'task': 'buy groceries'}]
return jsonify(todos)
def post(self):
# add task to todo list in database
return {'task': 'added task to todo list'}, 201
api.add_resource(TodoList, '/todos')
@app.errorhandler(404)
def not_found(error):
return {'error': 'Not found'}, 404
웹 서버에 API를 배포하려면 다음 명령을 실행한다.
if __name__ == '__main__':
app.run(debug=True)
Postman 또는 cURL과 같은 도구를 사용하여 API를 테스트할 수 있다. 예를 들어 cURL을 사용하는 경우:
curl http://localhost:5000/
이 가이드를 마치면 Python 및 Flask를 사용하여 작동하는 REST API와 그 이면의 코드에 대한 깊은 이해를 갖을수 있게 될 것이다.
#파이썬 #웹서비스 #웹개발 #flask #REST API #API설계
CloneCoding
한 줄의 코드에서 시작되는 혁신!