Аутентифікація

Деякі запити API (особливо GET запити лише для читання) не потребують аутентифікації. Інші, ті, які модифікують дані у базі даних, потребують аутентифікації брокера через ключ API. Додатково видаються токени власника, щоб забезпечити кілька ролей дійових осіб при створенні об’єкта.

Ключі API

Ключ API - це ім’я користувача, що буде використовуватись зі схемою базової аутентифікації.

Токени власника

Отримання токена

Токен видається, коли об’єкт створюється в базі даних:

POST /api/0.1/assets?opt_pretty=1 HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 1516
Content-Type: application/json
Host: lb.api-sandbox.registry.ea.openprocurement.net

{
  "data": {
    "assetType": "basic",
    "classification": {
      "scheme": "CAV",
      "id": "39513200-3",
      "description": "Земельні ділянки"
    },
    "title": "Земля для космодрому",
    "value": {
      "currency": "UAH",
      "amount": 100
    },
    "unit": {
      "code": "39513200-3",
      "name": "item"
    },
    "address": {
      "countryName": "Україна",
      "postalCode": "79000",
      "region": "м. Київ",
      "streetAddress": "вул. Банкова 1",
      "locality": "м. Київ"
    },
    "assetCustodian": {
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "0440000000"
      },
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "uri": "http://www.dus.gov.ua/"
      },
      "name": "Державне управління справами",
      "address": {
        "countryName": "Україна",
        "postalCode": "01220",
        "region": "м. Київ",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "locality": "м. Київ"
      }
    },
    "quantity": 5
  }
}


201 Created
Content-Type: application/json
Location: http://lb.api-sandbox.registry.ea.openprocurement.net/api/0.1/assets/546aba419d944de29c4160d0a1cbf6ea
X-Content-Type-Options: nosniff

{
  "access": {
    "token": "20c787519afb4e18ad0c35bbed34cded"
  },
  "data": {
    "status": "draft",
    "assetType": "basic",
    "classification": {
      "scheme": "CAV",
      "description": "Земельні ділянки",
      "id": "39513200-3"
    },
    "title": "Земля для космодрому",
    "assetID": "UA-2017-08-16-000001",
    "value": {
      "currency": "UAH",
      "amount": 100.0,
      "valueAddedTaxIncluded": true
    },
    "dateModified": "2017-08-16T18:05:56.036043+03:00",
    "owner": "broker",
    "assetCustodian": {
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "0440000000"
      },
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "uri": "http://www.dus.gov.ua/"
      },
      "name": "Державне управління справами",
      "address": {
        "postalCode": "01220",
        "countryName": "Україна",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "region": "м. Київ",
        "locality": "м. Київ"
      }
    },
    "address": {
      "postalCode": "79000",
      "countryName": "Україна",
      "streetAddress": "вул. Банкова 1",
      "region": "м. Київ",
      "locality": "м. Київ"
    },
    "date": "2017-08-16T18:05:56.034096+03:00",
    "id": "546aba419d944de29c4160d0a1cbf6ea",
    "unit": {
      "code": "39513200-3",
      "name": "item"
    },
    "quantity": 5
  }
}

У відповіді є access разом з token. Це значення можна використати для модифікації об’єктів у “ролі Власника”.

Використання токена

Ви можете передати токен доступу такими способами:

  1. параметр рядка URL запиту acc_token

  2. заголовок HTTP запиту X-Access-Token

  3. access.token in the body of POST/PUT/PATCH request

Ось приклад, де токен передається як рядок URL запиту:

PATCH /api/0.1/assets/f7d85ded1544424d82a3473f9467f80f?acc_token=1803ee39a2164a3dacd9aee5e581aa7d HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 347
Content-Type: application/json
Host: lb.api-sandbox.registry.ea.openprocurement.net

{
  "data": {
    "description": "Земельні ділянки із великими покладами благородних металів"
  }
}


200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff

{
  "data": {
    "status": "pending",
    "assetType": "basic",
    "description": "Земельні ділянки із великими покладами благородних металів",
    "classification": {
      "scheme": "CAV",
      "description": "Земельні ділянки",
      "id": "39513200-3"
    },
    "title": "Земля для космодрому",
    "assetID": "UA-2017-08-16-000001",
    "value": {
      "currency": "UAH",
      "amount": 100.0,
      "valueAddedTaxIncluded": true
    },
    "dateModified": "2017-08-16T18:36:14.133838+03:00",
    "owner": "broker",
    "assetCustodian": {
      "contactPoint": {
        "name": "Державне управління справами",
        "telephone": "0440000000"
      },
      "identifier": {
        "scheme": "UA-EDR",
        "id": "00037256",
        "uri": "http://www.dus.gov.ua/"
      },
      "name": "Державне управління справами",
      "address": {
        "postalCode": "01220",
        "countryName": "Україна",
        "streetAddress": "вул. Банкова, 11, корпус 1",
        "region": "м. Київ",
        "locality": "м. Київ"
      }
    },
    "address": {
      "postalCode": "79000",
      "countryName": "Україна",
      "streetAddress": "вул. Банкова 1",
      "region": "м. Київ",
      "locality": "м. Київ"
    },
    "date": "2017-08-16T18:36:13.882146+03:00",
    "id": "f7d85ded1544424d82a3473f9467f80f",
    "unit": {
      "code": "39513200-3",
      "name": "item"
    },
    "quantity": 5
  }
}