Skip to main content

bind_request

Function bind_request 

Source
pub fn bind_request(
    flow: &IRFlow,
    path: &HashMap<String, String>,
    query: &HashMap<String, String>,
    body: Option<&Value>,
) -> Vec<(String, String)>
Expand description

§Fase 37.y — Bind a request to a flow’s declared parameters across THREE binding sources: path placeholders (URL captures), query string params, and a parsed JSON body.

For each parameter p of flow, the binder searches the three maps in declaration-source precedence (D4 guarantees there is AT MOST ONE source via compile-time axon-T901):

  1. pathHashMap<String, String> (URL path placeholder captures; values are URL-decoded raw text per HTTP convention).
  2. queryHashMap<String, String> (URL query string; the adopter passes the first value for multi-value keys per v1.38.5 honest-scope semantics).
  3. bodyOption<&Value> (the parsed JSON body; the v1.36.0 surface, unchanged).

The result is ordered by the flow’s parameter declaration order — deterministic for tests and the 37.g property pass.

Empty path + empty query + None body is a no-op (D5 backwards-compat: callers that didn’t pass path/query before v1.38.5 use bind_request_body which delegates here with empty maps; the result is byte-identical to the pre-37.y behavior).