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)

Search Document