본문 바로가기
Engineering/Script, Coding

python, flask, json : request body에 포함된 데이터를 response body에 활용하기

by 알탱2 2022. 4. 17.
반응형

Flask를 활용하여 간단한 API 서버를 작성해 보았다.

주로 테스트에 필요한 더미 서버를 만들 때 사용하는데, 이번엔 request body에 포함된 데이터를 response body 일부에 활용하게 되었다.

아래는 샘플 코드다.

 

< 샘플 코드 구조 >

server.py : main source

response : 응답 샘플을 넣어둔 폴더

 

 

< server.py > 

from flask import Flask, request, Response, send_file
import json
import time
import uuid
import datetime
from pytz import utc
from waitress import serve
from pathlib import Path

app = Flask(__name__)

HOME_DIR = './response/'

@app.route('/user', methods=['POST'])
def post_user():
    _time = utc.localize(datetime.datetime.utcnow())
    _uuid = uuid.uuid4()
    _rootfile = Path(HOME_DIR+'post_user_____.json')

    tmp = open(_rootfile)
    f = json.load(tmp)
    _code = f["_code"]
    _bodyfile = f["_filename"]
    tmp.close()

    __bodyfile = Path(HOME_DIR+_bodyfile)
    tmp = open(__bodyfile)
    f = json.load(tmp)
    tmp.close()

    req_data = request.get_json()
    if _code == 201:
        f['name'] = req_data['name']
        f['phone'] = req_data['phone']
        f['uuid'] = "{}".format(_uuid)
        f['time'] = "{}".format(_time)
        _body = f
    else:
        _body = f
    resp = Response(json.dumps(_body), mimetype='application/json', status=_code)
    return resp

if __name__ == '__main__':
    serve(app, host='0.0.0.0', port=9999)

 

< server.py 실행 >

python server.py

 

 

< request & response 확인 >

 

 

반응형

댓글