49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
from flask import Request
|
|
import functions_framework
|
|
from utils.custom_logger import get_logger
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
@functions_framework.http
|
|
def hello_request(request: Request):
|
|
"""HTTPリクエストを処理するエンドポイント"""
|
|
|
|
logger.info("Cloud Function triggered start")
|
|
|
|
# Headerを取得する
|
|
ua = request.headers.get("User-Agent", "Unknown")
|
|
logger.info(f"User-Agent: {ua}")
|
|
|
|
if request.method == "GET":
|
|
logger.info("Processing GET request")
|
|
return _get(request)
|
|
elif request.method == "POST":
|
|
logger.info("Processing POST request")
|
|
return _post(request)
|
|
else:
|
|
logger.warning(f"Unsupported HTTP method: {request.method}")
|
|
return {"error": "Unsupported HTTP method"}, 405
|
|
|
|
|
|
def _get(request: Request):
|
|
"""GETリクエストの処理"""
|
|
params = request.args
|
|
name = params.get("name", "World")
|
|
message = f"Hello, {name}!"
|
|
logger.info(f"Greeting generated: {message}")
|
|
return {"message": message}
|
|
|
|
|
|
def _post(request: Request):
|
|
"""POSTリクエストの処理"""
|
|
data = request.get_json(silent=True)
|
|
if not data or "name" not in data:
|
|
logger.warning("Invalid POST request: 'name' not found in JSON body")
|
|
return {"error": "Please provide a 'name' in the JSON body."}, 400
|
|
|
|
name = data["name"]
|
|
message = f"Hello, {name}!"
|
|
logger.info(f"Greeting generated: {message}")
|
|
return {"message": message}
|
|
|