Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Rules array of tables

[[rules]], each rule record, consists of a when table and a respond table.

classDiagram
    direction LR
    class RuleSet {
        +Table prefix
        +Array~Rule~ rules
    }
    class Prefix {
        +String url_path
        +String respond_dir
    }
    class Rule {
        +Table when
        +Table respond
    }
    class When {
        +String request.url_path
        +Table request.headers
        +Table request.body.json
    }
    class Respond {
        +String file_path
        +String text
        +Integer status
        +String csv_records_key
        +Integer delay_response_milliseconds
    }

    RuleSet --|> Prefix : contains 1
    RuleSet --o Rule : contains many
    Rule --|> When : contains 1
    Rule --|> Respond : contains 1

    note for When "All conditions are ANDed."
    note for Respond "Only one of file_path or text can be used."

Here's an overview of the rule data structure in a nested Markdown format:

  • apimock-rule-set.toml
    • [prefix] (Table): Global settings for the rule set file.
      • url_path: A URL path prefix applied to all rules in this file.
      • respond_dir: A directory prefix for response file paths in this file.
    • [[rules]] (Array of Tables): Defines individual mock rules.
      Each [[rules]] entry represents a single rule and contains:
      • when (Table): Defines the matching conditions for the request.
        • request.url_path: Matches the request's URL path.
        • request.headers: Matches specific HTTP headers (case-insensitive).
        • request.body.json: Matches values within the JSON request body using dot-notation.
        • Note: All when conditions within a rule are evaluated with AND logic.
      • respond (Table): Specifies the response to be returned if the rule matches.
        • file_path: Returns content from a file (mutually exclusive with body).
        • text: Returns a string as the response body (mutually exclusive with file_path).
        • status: Sets the HTTP status code.
        • csv_records_key: Replace csv list key which is records by default.
        • delay_response_milliseconds: Mimic network delay.

Besides, the overall configuration overview is here.