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