Flask API 만들기

minho-log·2026년 2월 14일

Flask

목록 보기
5/7

<공부 주제>

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"
  }
}

<헷갈렸던 점>

  • HTML을 반환할 때는 render_template()를 썼는데, API는 jsonify()를 써야 한다는 점이 처음에는 헷갈렸다.
  • POST 요청에서 데이터를 받을 때 request.form과 request.json의 차이가 헷갈렸는데, JSON 요청이면 request.json을 사용해야 한다는 걸 정리했다.

<오늘의 정리>

  • API는 보통 JSON 데이터를 응답한다.
  • Flask에서는 jsonify()로 JSON 응답을 만든다.
  • POST 요청에서 JSON 데이터를 받으려면 request.json을 사용한다.
  • curl로 API 테스트가 가능하다.
profile
개발 공부를 하며 직접 부딪히고 공부한 것을 기록합니다.

0개의 댓글