category

http_router_parameters

Declarative router companion category that reuses http_parameters declarations for request extraction and OpenAPI metadata generation.

Availability:
logtalk_load(http_parameters(loader))
Author: Paulo Moura
Version: 1:0:0
Date: 2026-06-26
Compilation flags:
static
Extends:
Uses:
Remarks:
  • Route declarations: Importing objects define parameter declarations per route using route_parameter_declarations/2.

  • Handler helper: Route handlers can call route_parameters/2 on the routed request to extract typed values using the matched route declarations.

  • OpenAPI metadata: The category generates route metadata for query and path parameters, form request bodies, and a default 400 Bad Request response descriptor from the same declarations. Importing objects can extend or override that metadata using route_parameter_extra_metadata/2 or by overriding route_metadata/2 and delegating with ^^route_metadata/2.

Inherited public predicates:

Public predicates

route_parameters/2

Extracts typed parameters for the route identified by the routed request route/1 annotation.

Compilation flags:
static
Template:
route_parameters(Request,Parameters)
Mode and number of proofs:
route_parameters(+compound,-list(compound)) - one_or_error
Exceptions:
Request is not a valid normalized HTTP request term:
domain_error(http_request,Request)
Request does not contain a route annotation:
domain_error(http_routed_request,Request)
The route parameter declarations are invalid:
domain_error(http_parameter_declaration,Declaration)
A path parameter declaration is not declared by the route path template:
domain_error(http_parameter_declaration(Name,path),not_in_route_path(RouteId))
A path parameter declaration type is incompatible with the route path template:
domain_error(http_parameter_declaration(Name,path),incompatible_route_path_type(Type,PathTemplateType))
The request parameters fail declared type or constraint validation:
error(http_parameter_validation(Errors),Context)

Protected predicates

route_parameter_declarations/2

Optional hook predicate that returns the http_parameters declaration list for a route identifier.

Compilation flags:
static
Template:
route_parameter_declarations(RouteId,Declarations)
Mode and number of proofs:
route_parameter_declarations(?atom,?list(compound)) - zero_or_one

route_parameter_request_body_description/2

Optional hook predicate that customizes the generated OpenAPI request-body description for form parameter declarations.

Compilation flags:
static
Template:
route_parameter_request_body_description(RouteId,Description)
Mode and number of proofs:
route_parameter_request_body_description(?atom,?atom) - zero_or_one

route_parameter_extra_metadata/2

Optional hook predicate that returns additional route metadata terms to merge with the metadata generated from parameter declarations.

Compilation flags:
static
Template:
route_parameter_extra_metadata(RouteId,Metadata)
Mode and number of proofs:
route_parameter_extra_metadata(?atom,?list(compound)) - zero_or_one

Private predicates

(no local declarations; see entity ancestors if any)

Operators

(none)