HTTP Mapping Model and Defaults
This page explains how functional outcomes are translated to HTTP responses.
Mapping Flow
- Your endpoint returns
Result,Result<T>, orMaybe<T>. - Adapter extensions (
ToHttpResult,ToActionResult) inspect the outcome. - Success and failure branches are converted to HTTP status codes and bodies.
Default Behavior
Success Cases
Result.Success()maps to success status based on configured policy.Result<T>.Success(value)maps to200with a serialized body.Maybe<T>.Some(value)maps to200with a serialized body.
Failure Cases
Built-in mappings include:
ValidationFailure->400NotFoundFailure->404UnauthorizedFailure->401UnauthenticatedFailure->403ConflictFailure->409ExceptionalFailure->500- Unknown failure types ->
500
Why This Matters
Centralized mapping keeps HTTP concerns out of domain logic and ensures consistent behavior across endpoints.