dream_mock_server/controllers/api_controller
api_controller.gleam - Non-streaming API endpoints
Handles HTTP concerns: parsing, response building. All formatting is delegated to the view layer.
Values
pub fn content_type(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
POST /content-type - Echoes the request Content-Type header value as plain text
pub fn corrupted_gzip(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /corrupted-gzip - Returns garbage bytes with Content-Encoding: gzip
pub fn deflate(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /deflate - Returns “Hello, World!” deflate-compressed
pub fn delete(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
DELETE /delete - Returns success response
pub fn echo_accept_encoding(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /echo-accept-encoding - Echoes the request’s Accept-Encoding header
pub fn empty(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /empty - Returns empty response body
pub fn get(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /get - Returns JSON with request info including query parameters
pub fn gzip(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /gzip - Returns “Hello, World!” gzip-compressed
pub fn identity(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /identity - Returns “Hello, World!” with Content-Encoding: identity
pub fn json_endpoint(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /json - Returns simple JSON object
pub fn large(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /large - Returns a very large response body (for memory testing)
pub fn non_utf8_error(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /non-utf8-error - Returns HTTP 400 with a body containing non-UTF-8 bytes
The body is “Error: “ followed by bytes 0xC0, 0xC1, 0xFE, 0xFF which are invalid in UTF-8 encoding. Used to test that the HTTP client can handle error responses whose bodies are not valid UTF-8.
pub fn post(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
POST /post - Echoes request body as JSON
pub fn put(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
PUT /put - Echoes request body as JSON
pub fn slow(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /slow - Returns response after a long delay
pub fn status(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /status/:code - Returns response with specified status code
pub fn text(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /text - Returns plain text
pub fn unknown_encoding(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /unknown-encoding - Returns raw bytes with Content-Encoding: br
pub fn uuid(
request: request.Request,
context: context.EmptyContext,
services: router.EmptyServices,
) -> response.Response
GET /uuid - Returns a UUID-like string (simple version)