In my Python Flask app I use Blueprint route to serve and handle API requests.
app/init.py
from api.foo import foo_routedef create_app(config): app = Flask(__name__) app.register_blueprint(foo_route) ... return appapi/foo.py
from flask import Blueprint, request, jsonifyfoo_route = Blueprint("foo", __name__)@foo_route.route("/path/to/foo/API", methods=["POST"])def handle_foo_api(request): result = {"foo1": "foo1", "foo2": "foo2"} return jsonify(result), 200How can I print all API request headers/body and response headers/body?
I can print it inside each function. For example, to print the request header for function handle_foo_api:
@foo_route.route("/path/to/foo/API", methods=["POST"])def handle_foo_api(request): logger.info(f"handle_foo_api request headers: {request.headers}") logger.info(f"handle_foo_api request data: {request.json}") result = jsonify({"foo1": "foo1", "foo2": "foo2"}) logger.info(f"handle_foo_api response headers: {resp.headers}") logger.info(f"handle_foo_api response data: {resp.get_json()}") return result, 200But I would like to do it once and for all, instead of in each function. How can I do that?