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 isrecords
by default.delay_response_milliseconds
: Mimic network delay.
Besides, the overall configuration overview is here.