Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add documentation for change notification #1267

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions docs/change-notification-api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## Change Notification API Calls

The system includes a built-in mechanism to [support notifications for definition changes](https://github.com/clearlydefined/service/issues/958). Changes in definitions, excluding files, and their associated coordinates are published at regular intervals. Every hour, a changeset file is released, listing the coordinates of definitions that have changed during that time. You can retrieve these updated definitions (excluding files) using the appropriate API. This document explains how to use the APIs designed to support change notifications.

### 1. Get List of Changeset File Names

- **Endpoint:** `GET {{baseurl}}/changes/index`
- **Description:** Retrieves a list of changeset file names. These files are published hourly and follow the naming convention `yyyy-mm-dd-hh`.
- **Example Response:**
```
2019-04-01-01
2019-02-07-23
```

### 2. Get Specific Changeset

- **Endpoint:** `GET {{baseurl}}/changes/{changeset}`
- **Description:** Retrieves a specific changeset containing the coordinates of definitions that have been changed during the specified hourly interval.
- **Example Request:**
```
GET {{baseurl}}/changes/2019-02-07-23
```
- **Example Response:**
```
composer/packagist/alibabacloud/dysmsapi-20170525/1.0.0.json
composer/packagist/alibabacloud/dysmsapi-20170525/1.0.2.json
```

### 3. Get Changed Definition

- **Endpoint:** `GET {{baseurl}}/{coordinates}.json`
- **Description:** Retrieves the changed definition without including files.
- **Example Request:**
```
GET {{baseurl}}/composer/packagist/alibabacloud/dysmsapi-20170525/1.0.0.json
```

**Base URL for Test Data:** https://clearlydefineddev.blob.core.windows.net/develop-snapshots
Loading