Sync is a service designed to help developers stay ahead of API breaking changes and maintain application reliability. It enables you to register the APIs you rely on and receive notifications whenever a breaking change occurs.
- Proactive Notification System: Sync proactively alerts you to API breaking changes, allowing you to take timely action and prevent disruptions to your applications.
- Centralized API Dependency Management: Sync provides a single platform to manage your API dependencies, simplifying the monitoring process and ensuring that you stay informed about changes across all your APIs.
Signing up for Sync is simple and straightforward. Just provide us with the URLs of the APIs you rely on, and we'll take care of the rest. Our tool will continuously monitor these OpenAPIs for changes and notify you via Slack whenever a breaking change is detected.
The Slack message includes:
- Webhook Name: The name of the webhook triggering the notification.
- Changelog Link: A hyperlink to the detailed changelog.
- Summary of Breaking Changes: A brief summary of the detected breaking changes, including counts of errors and warnings.
- Create a Tenant: Sign up for Sync and create a tenant with a name, your email address and a Slack channel URL. This tenant serves as the central hub for managing your API dependencies.
- Define Webhooks for Each API: For each OpenAPI specification you depend on, create a webhook.
- Receive Breaking Change Notifications. Example:
OpenAI Changelog
179 breaking changes: 2 error, 177 warning
Explore a detailed breakdown of changes in this comprehensive HTML changelog.
To use Sync, first create a tenant with a name:
curl -d '{
"tenant": "my-company",
"email": "[email protected]",
"callback": "https://api.my-company.com/webhooks",
"slack_channel": "https://hooks.slack.com/services/TLDF14G/AG123/abcd"
}' https://sync.oasdiff.com/tenants
You will get a response with your tenant ID, that looks like this:
{"id": "2ahh9d6a-2221-41d7-bbc5-a950958345"}
Now, for each OpenAPI spec that you depend on, create a webhook:
curl -d '{
"webhook_name": "OpenAI",
"owner": "openai",
"repo": "openai-openapi",
"path": "openapi.yaml",
"branch": "master",
"spec": "https://github.com/openai/openai-openapi/raw/e145786e70bf5fc1bc73c7cd19884f445d52c383/openapi.yaml"
}' https://sync.oasdiff.com/tenants/{tenant-id}/webhooks
You will get a response with created webhook ID, that looks like this:
{"id": "2ahh9d6a-3344-41d7-bbc5-a950958345"}
Schema input parameters:
webhook_name
a unique webhook nameowner
GitHub repo's ownerrepo
GitHub repopath
path to OpenAPI revision filebranch
branch which the revision OpenAPI file (usually main or master)spec
full URL to base OpenAPI fileslack_channel
will be called on breaking changes.
Note, currently only GitHub is supported.
You are all set :)
Tip: to discover a vast collection of OpenAPI specifications, consider exploring this open-source catalog.