Skip to content

Commit 2eb6574

Browse files
committed
Normalized path handling for API Gateway v1 and v2, ensuring consistent routing across /preview, /evaluate, and /evaluate/health endpoints.
1 parent 0eda4a1 commit 2eb6574

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

handler.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,25 @@ def handler(event: JsonType, _=None) -> HandlerResponse:
104104
if _ is None:
105105
_ = {}
106106

107-
path = event.get("path", "/")
107+
# Normalise path: prefer rawPath (HTTP API v2) over path (REST API v1).
108+
# API Gateway v1 includes the full resource prefix in `path`
109+
# (e.g. /compareExpressions-staging/evaluate), so we match on suffix.
110+
# API Gateway v2 uses `rawPath` at the top level; `path` may be absent.
111+
raw_path = event.get("rawPath") or event.get("path", "/")
112+
if raw_path.endswith("/evaluate/health"):
113+
path = "/evaluate/health"
114+
elif raw_path.endswith("/evaluate"):
115+
path = "/evaluate"
116+
elif raw_path.endswith("/preview"):
117+
path = "/preview"
118+
else:
119+
path = raw_path
108120

109121
try:
110122
if path == "/evaluate":
111123
return handle_muEd_command(event, "eval")
112124

113-
elif path == "/health":
125+
elif path == "/evaluate/health":
114126
return handle_muEd_command(event, "healthcheck")
115127

116128
elif path == "/preview":

0 commit comments

Comments
 (0)