Middleware Module
XRPC middleware for error formatting, rate limiting, and request validation.
Functions and values
| Function or value |
Description
|
Full Usage:
authRequired message jsonOptions
Parameters:
string
jsonOptions : JsonSerializerOptions
Returns: IResult
|
Format an AuthRequired error (401).
|
|
Extract the client key for rate limiting (uses remote IP or "unknown").
|
Full Usage:
intQueryParam name defaultValue minValue maxValue ctx
Parameters:
string
defaultValue : int
minValue : int
maxValue : int
ctx : HttpContext
Returns: int
|
Parse a query parameter as an integer with a default value and bounds.
|
Full Usage:
invalidRequest message jsonOptions
Parameters:
string
jsonOptions : JsonSerializerOptions
Returns: IResult
|
Format an InvalidRequest error (400).
|
Full Usage:
methodNotImplemented nsid jsonOptions
Parameters:
string
jsonOptions : JsonSerializerOptions
Returns: IResult
|
Format a MethodNotImplemented error (501).
|
Full Usage:
optionalQueryParam name ctx
Parameters:
string
ctx : HttpContext
Returns: string option
|
|
Full Usage:
rateLimitExceeded retryAfterSeconds jsonOptions
Parameters:
float
jsonOptions : JsonSerializerOptions
Returns: IResult
|
Format a rate limit exceeded error (429) with Retry-After header.
|
Full Usage:
requireQueryParam name ctx
Parameters:
string
ctx : HttpContext
Returns: Result<string, string>
|
Parse a required query parameter. Returns None with an error message if missing.
|
Full Usage:
tryReadJsonBody jsonOptions ctx
Parameters:
JsonSerializerOptions
ctx : HttpContext
Returns: Task<Result<'T, string>>
|
Try to read and deserialize the JSON request body.
|
Full Usage:
xrpcError statusCode error message jsonOptions
Parameters:
int
error : string
message : string
jsonOptions : JsonSerializerOptions
Returns: IResult
|
Format an AT Protocol error response. Writes the JSON body directly to avoid DI dependency on JsonSerializerOptions service.
|