--- /dev/null
+{
+ "consumer": {
+ "name": "Siren Order Provider"
+ },
+ "interactions": [
+ {
+ "description": "get root",
+ "request": {
+ "method": "GET",
+ "path": "/"
+ },
+ "response": {
+ "body": {
+ "class": [
+ "representation"
+ ],
+ "links": [
+ {
+ "href": "http://localhost:8080/orders",
+ "rel": [
+ "orders"
+ ]
+ }
+ ]
+ },
+ "generators": {
+ "body": {
+ "$.links[0].href": {
+ "example": "http://localhost:8080/orders",
+ "regex": ".*(\\/orders)$",
+ "type": "MockServerURL"
+ }
+ }
+ },
+ "headers": {
+ "Content-Type": "application/vnd.siren+json"
+ },
+ "matchingRules": {
+ "body": {
+ "$.links[0].href": {
+ "combine": "AND",
+ "matchers": [
+ {
+ "match": "regex",
+ "regex": ".*(\\/orders)$"
+ }
+ ]
+ }
+ },
+ "header": {}
+ },
+ "status": 200
+ }
+ },
+ {
+ "description": "get all orders",
+ "request": {
+ "method": "GET",
+ "path": "/orders"
+ },
+ "response": {
+ "body": {
+ "class": [
+ "entity"
+ ],
+ "entities": [
+ {
+ "actions": [
+ {
+ "href": "http://localhost:8080/orders/1234",
+ "method": "PUT",
+ "name": "update"
+ },
+ {
+ "href": "http://localhost:8080/orders/1234",
+ "method": "DELETE",
+ "name": "delete"
+ }
+ ],
+ "class": [
+ "entity"
+ ],
+ "links": [
+ {
+ "href": "http://localhost:8080/orders/1234",
+ "rel": [
+ "self"
+ ]
+ }
+ ],
+ "properties": {
+ "id": 1234
+ },
+ "rel": [
+ "item"
+ ]
+ }
+ ],
+ "links": [
+ {
+ "href": "http://localhost:8080/orders",
+ "rel": [
+ "self"
+ ]
+ }
+ ]
+ },
+ "generators": {
+ "body": {
+ "$.entities[*].links[0].href": {
+ "example": "http://localhost:8080/orders/1234",
+ "regex": ".*(\\/orders\\/\\d+)$",
+ "type": "MockServerURL"
+ },
+ "$.links[0].href": {
+ "example": "http://localhost:8080/orders",
+ "regex": ".*(\\/orders)$",
+ "type": "MockServerURL"
+ }
+ }
+ },
+ "headers": {
+ "Content-Type": "application/vnd.siren+json"
+ },
+ "matchingRules": {
+ "body": {
+ "$.entities": {
+ "combine": "AND",
+ "matchers": [
+ {
+ "match": "type"
+ }
+ ]
+ },
+ "$.entities[*].actions": {
+ "combine": "AND",
+ "matchers": [
+ {
+ "match": "arrayContains",
+ "variants": [
+ {
+ "generators": {
+ "$.href": {
+ "example": "http://localhost:8080/orders/1234",
+ "regex": ".*(\\/orders\\/\\d+)$",
+ "type": "MockServerURL"
+ }
+ },
+ "index": 0,
+ "rules": {
+ "$.href": {
+ "combine": "AND",
+ "matchers": [
+ {
+ "match": "regex",
+ "regex": ".*(\\/orders\\/\\d+)$"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "generators": {
+ "$.href": {
+ "example": "http://localhost:8080/orders/1234",
+ "regex": ".*(\\/orders\\/\\d+)$",
+ "type": "MockServerURL"
+ }
+ },
+ "index": 1,
+ "rules": {
+ "$.href": {
+ "combine": "AND",
+ "matchers": [
+ {
+ "match": "regex",
+ "regex": ".*(\\/orders\\/\\d+)$"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "$.entities[*].links[0].href": {
+ "combine": "AND",
+ "matchers": [
+ {
+ "match": "regex",
+ "regex": ".*(\\/orders\\/\\d+)$"
+ }
+ ]
+ },
+ "$.entities[*].properties.id": {
+ "combine": "AND",
+ "matchers": [
+ {
+ "match": "integer"
+ }
+ ]
+ },
+ "$.links[0].href": {
+ "combine": "AND",
+ "matchers": [
+ {
+ "match": "regex",
+ "regex": ".*(\\/orders)$"
+ }
+ ]
+ }
+ },
+ "header": {}
+ },
+ "status": 200
+ }
+ },
+ {
+ "description": "delete order",
+ "request": {
+ "matchingRules": {
+ "path": {
+ "combine": "AND",
+ "matchers": [
+ {
+ "match": "regex",
+ "regex": "/orders/\\d+"
+ }
+ ]
+ }
+ },
+ "method": "DELETE",
+ "path": "/orders/1234"
+ },
+ "response": {
+ "status": 200
+ }
+ }
+ ],
+ "metadata": {
+ "pact-js": {
+ "version": "10.0.0-beta.59"
+ },
+ "pactRust": {
+ "ffi": "0.2.4",
+ "models": "0.3.1"
+ },
+ "pactSpecification": {
+ "version": "3.0.0"
+ }
+ },
+ "provider": {
+ "name": "Siren Order Service"
+ }
+}
\ No newline at end of file