Flask로 API 만들기 (JSON 응답)
API는 클라이언트(브라우저, 앱 등)가 서버에 요청을 보내면 서버가 데이터를 응답하는 방식이다.
웹 페이지(HTML)를 반환하는 것과 달리, API는 보통 JSON 형태의 데이터를 반환한다.
Flask에서 API를 만들 때는 다음 흐름을 이해하면 된다.
1. URL(라우팅)을 만든다
2. 요청 방식(GET/POST 등)을 지정한다
3. 필요한 데이터를 처리한다
4. JSON 형태로 응답한다
Flask에서는 JSON 응답을 쉽게 만들기 위해 jsonify()를 사용한다.
또한 POST 요청에서 JSON 데이터를 받으려면 request.json을 사용한다.
GET 방식으로 JSON 응답하기
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/ping", methods=["GET"])
def ping():
return jsonify({"result": "pong"})
if __name__ == "__main__":
app.run(debug=True)
브라우저에서 접속
http://127.0.0.1:5000/ping
응답 예시
{"result":"pong"}
POST 방식으로 JSON 받기 + JSON 응답하기
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/echo", methods=["POST"])
def echo():
data = request.json
return jsonify({
"you_sent": data,
"message": "ok"
})
if __name__ == "__main__":
app.run(debug=True)
터미널에서 테스트 (curl)
curl -X POST http://127.0.0.1:5000/echo \
-H "Content-Type: application/json" \
-d '{"name":"minho","age":24}'
응답 예시
{
"message": "ok",
"you_sent": {
"age": 24,
"name": "minho"
}
}