Liran Tal
💚@nodejs Security WG member | Core team @meanjs, #dockly | Author: 📘Essential Node.js Security ✨ Engineering Manager @nielsen-oss | ❤️#opensource #javascript
github.com/lirantal
@liran_tal
github.com/lirantal
@liran_tal
Build
Test
Deploy
Build
Test
Deploy
Build
Test
Deploy
Build
Test
Deploy
src: https://apigee.com/about/blog/api-technology/microservices-amazon
Build
Test
Deploy
Build
Test
Deploy
Build
Test
Deploy
🤔
data: {
"movieId": 1001,
"name": "The Matrix"
"rating": 10
}
response: {
"status": 200
"body": []
}
Collaborate
Collaborate
Collaborate
Write
Contract Tests
Collaborate
Write
Contract Tests
request: {
"method": "GET",
"path": "/projects"
},
response: {
"status": 200
"body": []
}
Collaborate
Push Contract to Broker
Write
Contract Tests
Collaborate
Push Contract to Broker
Write
Contract Tests
Collaborate
Push Contract to Broker
Write
Contract Tests
Provider
Implements
Collaborate
Push Contract to Broker
Write
Contract Tests
Provider
Implements
function amazing_api_endpoint() {
// incredible logic goes here
// ...
// ...
}
Collaborate
Push Contract to Broker
Write
Contract Tests
Provider
Implements
Download
Contracts
Collaborate
Push Contract to Broker
Write
Contract Tests
Download
Contracts
Provider
Implements
request: {
"method": "GET",
"path": "/projects"
},
response: {
"status": 200
"body": []
}
Collaborate
Push Contract to Broker
Write
Contract Tests
Download
Contracts
Provider
Implements
Run Provider
Contract Tests
Collaborate
Push Contract to Broker
Write
Contract Tests
Download
Contracts
Provider
Implements
Run Provider
Contract Tests
request: {
"method": "GET",
"path": "/projects"
},
response: {
"status": 200
"body": []
}
Users
Service
Get Contracts
Create Contract
Projects
Service
Validate Contract Not Broken
Use Contract
Mock in Tests
data: {
"movieId": 1001,
"name": "The Matrix"
"totalReviews": 10,
"averageRating": 8
}
data: {
"movieId": 1001,
"name": "The Matrix"
"totalReviews": 10,
"averageRating": 8
}
response: {
"status": 200
"body": []
}
{
Pact Contract
Pact Broker
Consumer
Provider
data: {
"movieId": 1001,
"name": "The Matrix"
"rating": 10
}
Collaborate
Push Contract to Broker
Write
Contract Tests
Download
Contracts
Provider
Implements
Run Provider
Contract Tests
github.com/lirantal
@liran_tal
By Liran Tal
A Comprehensive Guide to Contract Testing APIs in a Service Oriented Architecture. It is likely you experienced the painful situation of deploying to production only to find out that an API service you integrate with has broken the contract. Enter Consumer-Driven-Contracts.
💚@nodejs Security WG member | Core team @meanjs, #dockly | Author: 📘Essential Node.js Security ✨ Engineering Manager @nielsen-oss | ❤️#opensource #javascript