restructure: move el compiler content into lang/
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
// http-status-envelope.el — acceptance test for the __status__ HTTP envelope.
|
||||
//
|
||||
// Before fix: a handler returning {"__status__":401,"error":"unauthorized"}
|
||||
// went out as an HTTP 200 with the JSON body verbatim, so Cloud Run logs were
|
||||
// full of 200s for what should have been 4xx/5xx.
|
||||
//
|
||||
// After fix: when the response body's FIRST key is __status__, the runtime
|
||||
// reads the integer value as the HTTP status code and strips the marker from
|
||||
// the body before sending it to the client.
|
||||
//
|
||||
// Verify with curl:
|
||||
// curl -i http://localhost:8081/auth -> HTTP/1.1 401 Unauthorized
|
||||
// curl -i http://localhost:8081/health -> HTTP/1.1 200 OK
|
||||
// curl -i http://localhost:8081/oops -> HTTP/1.1 503 Service Unavailable
|
||||
|
||||
fn handle(method: String, path: String, body: String) -> String {
|
||||
if path == "/auth" {
|
||||
return "{\"__status__\":401,\"error\":\"unauthorized\"}"
|
||||
}
|
||||
if path == "/oops" {
|
||||
return "{\"__status__\":503,\"error\":\"degraded\"}"
|
||||
}
|
||||
if path == "/health" {
|
||||
return "{\"ok\":true}"
|
||||
}
|
||||
return "{\"__status__\":404,\"error\":\"not found\"}"
|
||||
}
|
||||
|
||||
fn main() -> Int {
|
||||
http_set_handler("handle")
|
||||
http_serve(8081, "handle")
|
||||
return 0
|
||||
}
|
||||
Reference in New Issue
Block a user