Список змін

Список змін - спосіб синхронізації з базою даних моніторингів ДАСУ. Спробуемо використати feed=changes для отримання моніторингів відсортованих по даті зміни:

GET /api/2.5/monitorings?feed=changes&limit=3&opt_fields=reasons HTTP/1.0
Host: audit-api-sandbox.prozorro.gov.ua

Response: 200 OK
Content-Type: application/json
{
  "data": [
    {
      "id": "c5c21052abc34c87b93f4852aba5d5ea",
      "dateModified": "2018-01-01T02:00:00+02:00"
    },
    {
      "id": "f0dcdef86c634647a23c1a6117a408c6",
      "dateModified": "2018-01-01T02:00:00+02:00"
    },
    {
      "id": "9ed1c8769f03420eb3000ef27c139d4d",
      "dateModified": "2018-01-01T02:00:00+02:00"
    }
  ],
  "next_page": {
    "offset": "e5e33510afa6a90a38b59f5c32aee2fd",
    "path": "/api/2.5/monitorings?limit=3&feed=changes&offset=e5e33510afa6a90a38b59f5c32aee2fd",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&feed=changes&offset=e5e33510afa6a90a38b59f5c32aee2fd"
  }
}

Відповідь містить next_page. З кожним використанням ми отримуємо моніторинги що ще не були синхронізовані.

GET /api/2.5/monitorings?limit=3&feed=changes&offset=e5e33510afa6a90a38b59f5c32aee2fd HTTP/1.0
Host: audit-api-sandbox.prozorro.gov.ua

Response: 200 OK
Content-Type: application/json
{
  "data": [
    {
      "id": "a67391960a6f4cf8a091c1fb898ef404",
      "dateModified": "2018-01-01T02:00:00+02:00"
    },
    {
      "id": "80e451287e28492dac96cac9a2db529b",
      "dateModified": "2018-01-01T02:00:00+02:00"
    }
  ],
  "next_page": {
    "offset": "1bc3a6018317aa091e1e998010cb0f62",
    "path": "/api/2.5/monitorings?limit=3&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62"
  },
  "prev_page": {
    "offset": "e5e33510afa6a90a38b59f5c32aee2fd",
    "path": "/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=e5e33510afa6a90a38b59f5c32aee2fd",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=e5e33510afa6a90a38b59f5c32aee2fd"
  }
}

Продовжимо до останньої сторінки:

GET /api/2.5/monitorings?limit=3&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62 HTTP/1.0
Host: audit-api-sandbox.prozorro.gov.ua

Response: 200 OK
Content-Type: application/json
{
  "data": [],
  "next_page": {
    "offset": "1bc3a6018317aa091e1e998010cb0f62",
    "path": "/api/2.5/monitorings?limit=3&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62"
  },
  "prev_page": {
    "offset": "1bc3a6018317aa091e1e998010cb0f62",
    "path": "/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62"
  }
}

Оскільки більше немає результатів, почекаємо перш ніж робити нову спробу:

GET /api/2.5/monitorings?limit=3&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62 HTTP/1.0
Host: audit-api-sandbox.prozorro.gov.ua

Response: 200 OK
Content-Type: application/json
{
  "data": [
    {
      "id": "9409c91316e942e199a6724e67189679",
      "dateModified": "2018-01-01T02:00:00+02:00"
    }
  ],
  "next_page": {
    "offset": "4ca60436fc1d0dcc6f9aef8f5320d122",
    "path": "/api/2.5/monitorings?limit=3&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122"
  },
  "prev_page": {
    "offset": "1bc3a6018317aa091e1e998010cb0f62",
    "path": "/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=1bc3a6018317aa091e1e998010cb0f62"
  }
}

Наступна сторінка може бути знову пустою

GET /api/2.5/monitorings?limit=3&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122 HTTP/1.0
Host: audit-api-sandbox.prozorro.gov.ua

Response: 200 OK
Content-Type: application/json
{
  "data": [],
  "next_page": {
    "offset": "4ca60436fc1d0dcc6f9aef8f5320d122",
    "path": "/api/2.5/monitorings?limit=3&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122"
  },
  "prev_page": {
    "offset": "4ca60436fc1d0dcc6f9aef8f5320d122",
    "path": "/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122"
  }
}

або містити моніторинги з новими змінами

GET /api/2.5/monitorings?limit=3&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122 HTTP/1.0
Host: audit-api-sandbox.prozorro.gov.ua

Response: 200 OK
Content-Type: application/json
{
  "data": [
    {
      "id": "059a8c655c1248b9839be632cb95f44a",
      "dateModified": "2018-01-01T02:00:00+02:00"
    }
  ],
  "next_page": {
    "offset": "72695a78aa93d91a5d563be15871a8ef",
    "path": "/api/2.5/monitorings?limit=3&feed=changes&offset=72695a78aa93d91a5d563be15871a8ef",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&feed=changes&offset=72695a78aa93d91a5d563be15871a8ef"
  },
  "prev_page": {
    "offset": "4ca60436fc1d0dcc6f9aef8f5320d122",
    "path": "/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122",
    "uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&descending=1&feed=changes&offset=4ca60436fc1d0dcc6f9aef8f5320d122"
  }
}