Schema Definitions Layout
Define structural response validation schemas under .gherkio/schemas/ to enforce robust API contracts.
📏 Specification Standards
Gherkio natively parses schemas conforming to the JSON Schema Draft-07 specification. You can define schemas as standard JSON (.json) or YAML (.yaml/.yml).
📝 Canonical Schema Layout Example
Example: .gherkio/schemas/auth/token-payload.yaml
$schema: "http://json-schema.org/draft-07/schema#"
type: object
required:
- token
- expiresAt
- user
properties:
token:
type: string
pattern: "^eyJ[A-Za-z0-9-_=]+\\.[A-Za-z0-9-_=]+\\.?[A-Za-z0-9-_.+/=]*$" # Simple JWT format regex
expiresAt:
type: string
format: date-time
user:
type: object
required:
- id
- email
properties:
id:
type: string
format: uuid
email:
type: string
format: email
⚡ Asserting the Schema inside steps
Refer to the relative path of the schema file (omitting the extension) under the expect block:
steps:
- request:
method: POST
url: /v1/auth/token
expect:
status: 200
schema: auth/token-payload # References .gherkio/schemas/auth/token-payload.yaml
If the server response contains a different structure (e.g. expiresAt is a number, or user.id is not a valid UUID), the test run halts with high-precision validation tracebacks.