93 lines
2.2 KiB
JSON
93 lines
2.2 KiB
JSON
{
|
|
"_comment": "Pact Consumer Contract Template",
|
|
"consumer": {
|
|
"name": "MyConsumer"
|
|
},
|
|
"provider": {
|
|
"name": "MyProvider"
|
|
},
|
|
"interactions": [
|
|
{
|
|
"_comment": "Example Interaction - GET request",
|
|
"description": "a request to get a product",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/products/123",
|
|
"headers": {
|
|
"Accept": "application/json"
|
|
},
|
|
"_comment": "Optional: Query parameters"
|
|
"query": ""
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
"Content-Type": "application/json; charset=utf-8"
|
|
},
|
|
"body": {
|
|
"id": 123,
|
|
"name": "Example Product",
|
|
"description": "A sample product for testing purposes",
|
|
"price": 25.99,
|
|
"inStock": true,
|
|
"_comment": "Optional: Matchers for flexible validation"
|
|
"_matchers": {
|
|
"$.id": {
|
|
"match": "type"
|
|
},
|
|
"$.price": {
|
|
"match": "decimal"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"providerStates": [
|
|
{
|
|
"name": "Product 123 exists",
|
|
"_comment": "Optional: Define state setup for provider"
|
|
"params": {
|
|
"productId": 123
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"_comment": "Example Interaction - POST request",
|
|
"description": "a request to create a new product",
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/products",
|
|
"headers": {
|
|
"Content-Type": "application/json"
|
|
},
|
|
"body": {
|
|
"name": "New Product",
|
|
"description": "A new product to be created",
|
|
"price": 10.00
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 201,
|
|
"headers": {
|
|
"Content-Type": "application/json; charset=utf-8"
|
|
},
|
|
"body": {
|
|
"id": 456,
|
|
"name": "New Product",
|
|
"description": "A new product to be created",
|
|
"price": 10.00
|
|
}
|
|
},
|
|
"providerStates": [
|
|
{
|
|
"name": "The system is in a valid state to create products"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"pactSpecification": {
|
|
"version": "3.0.0"
|
|
}
|
|
}
|
|
} |