Вітаємо на сайті документації по openregistry.assets.basic!¶
Будь ласка повідомляйте про всі проблеми та поради покращень або через розсилку , або через issue tracker.
Зміст:
Огляд¶
openregistry.assets.basic містить документацію з описом роботи з базою даних реєстру активів (RDB).
Особливості¶
Basic asset є представленням активу.
Процедура переходить зі статусу draft до pending.
Декілька asset’ів, що, поєднуючись, формують лот, позначаються прикріпленими до цього лоту.
Єдина валюта (Value.currency), яку можна використати в межах процедури, - гривня (UAH).
Домовленості¶
API приймає JSON або form-encoded вміст у запитах. Він повертає JSON вміст у всіх свої відповідях, включно з помилками. Підтримується лише UTF-8 кодування і для запитів, і для відповідей.
Всі API POST та PUT запити очікують об’єкт верхнього рівня з єдиним елементом з назвою data. Відповіді з повідомленням про успіх будуть віддзеркалювати цей формат. Елемент data повинен сам бути об’єктом, що містить параметри запиту.
Якщо запит був успішним, ми отримаємо код відповіді 201, який вказує, що об’єкт був створений. Ця відповідь буде мати data поле на верхньому рівні, яке вміщуватиме повну інформацію про новий актив, включно з ID.
Якщо під час запиту виникли труднощі, ми отримаємо інший код стану та JSON, який при поверненні міститиме errors поле на верхньому рівні зі списком проблем. Ми дивимось на першу з них і видруковуємо її повідомлення.
Стан проекту¶
Статус цього проекту - пре альфа.
Репозиторій джерельних текстів цього проекту є на GitHub: https://github.com/openprocurement/openregistry.api
Стабільність API¶
API є відносно стабільним. Зміни в API обговорюються через Open Procurement API розсилку.
Change log¶
0.1¶
Not Released
- Set up general build, testing, deployment, and ci framework.
- Creating/modifying asset
Наступні кроки¶
You might find it helpful to look at the Туторіал, or the Command Reference.
Стандарт даних¶
Стандарт даних змодельований згідно Open Contracting Standard з розширеннями в тих областях, які він не покриває.
Basic Asset¶
Схема¶
id: | рядок, генерується автоматично, лише для читання |
||||||
---|---|---|---|---|---|---|---|
assetID: | рядок, генерується автоматично, лише для читання Ідентифікатор активу, щоб знайти його у паперовій документації. OpenContracting Description: AssetID включають, щоб зробити структуру даних більш зручною та читабельною. |
||||||
date: | рядок, генерується автоматично, лише для читання Дата створення/знищення активу. |
||||||
dateModified: | рядок, генерується автоматично, лише для читання OpenContracting Description: Дата внесення останніх змін до активу. |
||||||
mode: | не обов’язково Додатковий параметр, що вказує на тестовий режим. |
||||||
status: | рядок, обов’язковий Статус запису в реєстрі активів. |
||||||
value: | Value, обов’язково Оціночна вартість. |
||||||
relatedLot: | рядок, обов’язковий у статусі active Ідентифікатор лоту, до якого належить актив. |
||||||
assetType: | рядок, обов’язковий Тип активу. |
||||||
title: | рядок, багатомовний
Вказання заголовку англійською/російською не обов’язкове. |
||||||
description: | рядок, багатомовний, не обов’язковий OpenContracting Description: Опис товарів та послуг, які повинні бути надані.
|
||||||
documents: | OpenContracting Description: Пов’язані з активом документи та додатки. |
||||||
assetCustodian: | Organization, обов’язково Розпорядник активу. |
||||||
classification: | Classification, обов’язково Початкова класифікація активу. Класифікація classification.scheme обов’язково повинна бути CAV. classification.id повинно бути дійсним CAV кодом. |
||||||
additionalClassifications: | |||||||
Список об’єктів Classification, не обов’язково OpenContracting Description: Масив додаткових класифікацій для елемента. Дивіться у список кодів itemClassificationScheme, щоб використати поширені варіанти в OCDS. Також можна використовувати для представлення кодів з внутрішньої схеми класифікації. Один з можливих додаткових класифікаторів - CAVS. |
|||||||
unit: | Unit, обов’язково OpenContracting Description: Опис одиниці виміру товару, наприклад, години, кілограми. Складається з назви одиниці та значення однієї одиниці. |
||||||
quantity: | ціле число, обов’язково OpenContracting Description: Кількість необхідних одиниць. |
||||||
location: | словник Географічні координати місця розташування. Складається з таких компонентів:
|
Classification¶
Схема¶
scheme: | рядок OpenContracting Description: Класифікація повинна бути взята з існуючої схеми або списку кодів. Це поле використовується, щоб вказати схему/список кодів, з яких буде братись класифікація. Для класифікацій лінійних елементів це значення повинно представляти відому Схему Класифікації Елементів, де це можливо. |
---|---|
id: | рядок OpenContracting Description: Код класифікації взятий з вибраної схеми. |
description: | рядок OpenContracting Description: Текстовий опис або назва коду. |
uri: | uri OpenContracting Description: URI для ідентифікації коду. Якщо індивідуальні URI не доступні для елементів у схемі ідентифікації, це значення треба залишити пустим. |
Unit¶
Схема¶
code: | рядок, обов’язковий Код одиниці виміру в UN/CEFACT Recommendation 20. |
---|---|
name: | рядок OpenContracting Description: Назва одиниці виміру |
Value¶
Схема¶
amount: | float, обов’язково Повинно бути додатним. |
---|---|
currency: | рядок, обов’язковий OpenContracting Description: Валюта у трибуквенному форматі ISO 4217. |
valueAddedTaxIncluded: | |
булеве значення, обов’язково |
Organization¶
Схема¶
name: | рядок, багатомовний Назва організації. |
---|---|
identifier: |
Ідентифікатор цієї організації. |
additionalIdentifiers: | |
Список об’єктів Identifier |
|
address: | Address, обов’язково |
contactPoint: | ContactPoint, обов’язково |
Identifier¶
Схема¶
scheme: | рядок OpenContracting Description: Ідентифікатори організації беруться з існуючої схеми ідентифікації. Це поле вказує схему або список кодів, де можна знайти ідентифікатор організації. Це значення повинно братись зі Схеми Ідентифікації Організацій. |
---|---|
id: | рядок, обов’язковий OpenContracting Description: Ідентифікатор організації у вибраній схемі. Дозволеними є коди зі спику кодів “Organisation Registration Agency” Стандарту IATI з додаванням коду UA-EDR для організацій, зареєстрованих в Україні (ЄДРПОУ та ІПН). |
legalName: | рядок, багатомовний OpenContracting Description: Легально зареєстрована назва організації. Повна юридична назва (наприклад - “Надра Банк”). |
uri: | uri OpenContracting Description: URI для ідентифікації організації, наприклад, ті, які надають Open Corporates або інші постачальники URI. Це не для вебсайту організації, його можна надати в полі url в ContactPoint організації. |
Address¶
Схема¶
streetAddress: | рядок OpenContracting Description: Вулиця. Наприклад, вул.Хрещатик, 22. |
---|---|
locality: | рядок OpenContracting Description: Населений пункт. Наприклад, Київ. |
region: | рядок OpenContracting Description: Область. Наприклад, Київська. |
postalCode: | рядок OpenContracting Description: Поштовий індекс, Наприклад, 78043. |
countryName: | рядок, багатомовний, обов’язковий OpenContracting Description: Назва країни. Наприклад, Україна. |
ContactPoint¶
Схема¶
name: | рядок, багатомовний, обов’язковий OpenContracting Description: Ім’я контактної особи, назва відділу чи контактного пункту для листування, що стосується цього процесу укладання договору. |
---|---|
email: | OpenContracting Description: Адреса електронної пошти контактної особи/пункту. |
telephone: | рядок OpenContracting Description: Номер телефону контактної особи/пункту. Повинен включати міжнародний телефонний код. |
faxNumber: | рядок OpenContracting Description: Номер факсу контактної особи/пункту. Повинен включати міжнародний телефонний код. |
url: | URL-адреса OpenContracting Description: Веб адреса контактної особи/пункту. |
Повинне бути заповнене хоча б одне з полів: або email, або telephone.
Document¶
Schema¶
id: | рядок, генерується автоматично |
---|---|
documentType: | рядок |
title: | рядок, багатомовний OpenContracting Description: Заголовок документу. |
description: | рядок, багатомовний OpenContracting Description: Короткий опис документа. Якщо документ не буде доступний онлайн, то поле опису можна використати для вказання способу отримання копії документа. |
format: | рядок OpenContracting Description: Формат документа зі списку кодів `IANA Media Types<http://www.iana.org/assignments/media-types/>`_, з одним додатковим значенням ‘offline/print’, що буде використовуватись, коли запис цього документа використовується для опису офлайнової публікації документа. |
url: | рядок, генерується автоматично OpenContracting Description: Пряме посилання на документ чи додаток. |
datePublished: | рядок, Date OpenContracting Description: Дата, коли документ був опублікований вперше. |
dateModified: | рядок, Date OpenContracting Description: Date that the document was last modified |
language: | рядок OpenContracting Description: Вказує мову документа, використовуючи або двоцифровий код ISO 639-1 або розширений BCP47 language tags. |
documentOf: | рядок Можливі значення:
|
relatedItem: | рядок |
Схема роботи активів¶
Умовні позначення¶
Пунктирні лінії - дії користувача
Суцільні лінії - автоматичні дії
Туторіал¶
Базові правила¶
Подивимось як працює точка входу /assets:
GET /api/0.1/assets HTTP/1.0
Authorization: Basic YnJva2VyOg==
Host: lb.api-sandbox.registry.ea.openprocurement.net
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"next_page": {
"path": "/api/0.1/assets?offset=",
"uri": "http://lb.api-sandbox.registry.ea.openprocurement.net/api/0.1/assets?offset=",
"offset": ""
},
"data": []
}
При виклику видає пустий набір.
Спробуймо створити новий актив
POST /api/0.1/assets?opt_pretty=1 HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 4
Content-Type: application/x-www-form-urlencoded
Host: lb.api-sandbox.registry.ea.openprocurement.net
415 Unsupported Media Type
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"status": "error",
"errors": [
{
"description": "Content-Type header should be one of ['application/json']",
"location": "header",
"name": "Content-Type"
}
]
}
Помилка вказує, що єдиний прийнятний тип вмісту це application/json.
Задовільнимо вимогу типу вмісту:
POST /api/0.1/assets?opt_pretty=1 HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 4
Content-Type: application/json
Host: lb.api-sandbox.registry.ea.openprocurement.net
422 Unprocessable Entity
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"status": "error",
"errors": [
{
"description": "No JSON object could be decoded",
"location": "body",
"name": "data"
}
]
}
Помилка вказує, що data не знайдено у тілі JSON.
Створення активу¶
Створимо asset з мінімально допустимим набором даних (тільки параметри обовязкові для заповнення)
POST /api/0.1/assets?opt_pretty=1 HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 1535
Content-Type: application/json
Host: lb.api-sandbox.registry.ea.openprocurement.net
{
"data": {
"status": "draft",
"assetType": "basic",
"classification": {
"scheme": "CAV",
"id": "39513200-3",
"description": "Земельні ділянки"
},
"title": "Земля для космодрому",
"value": {
"currency": "UAH",
"amount": 100
},
"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": "м. Київ"
}
},
"address": {
"countryName": "Україна",
"postalCode": "79000",
"region": "м. Київ",
"streetAddress": "вул. Банкова 1",
"locality": "м. Київ"
},
"unit": {
"code": "39513200-3",
"name": "item"
},
"quantity": 5
}
}
201 Created
Content-Type: application/json
Location: http://lb.api-sandbox.registry.ea.openprocurement.net/api/0.1/assets/f7d85ded1544424d82a3473f9467f80f
X-Content-Type-Options: nosniff
{
"access": {
"token": "1803ee39a2164a3dacd9aee5e581aa7d"
},
"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:36:13.847230+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.844875+03:00",
"id": "f7d85ded1544424d82a3473f9467f80f",
"unit": {
"code": "39513200-3",
"name": "item"
},
"quantity": 5
}
}
PATCH /api/0.1/assets/f7d85ded1544424d82a3473f9467f80f?acc_token=1803ee39a2164a3dacd9aee5e581aa7d HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 31
Content-Type: application/json
Host: lb.api-sandbox.registry.ea.openprocurement.net
{
"data": {
"status": "pending"
}
}
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"data": {
"status": "pending",
"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:36:13.882146+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
}
}
Успіх! Тепер ми бачимо, що новий об’єкт було створено. Код відповіді 201 та заголовок відповіді Location вказує місцерозташування створеного об’єкта. Тіло відповіді показує інформацію про створений актив, його внутрішній id (яке співпадає з сегментом Location), його офіційний assetID та dateModified (дату, що показує час, коли актив востаннє модифікувався). Зверніть увагу на assetType, а також на те, що актив створюється зі статусом pending.
Використаємо URL створеного об’єкта (заголовок відповіді Location):
GET /api/0.1/assets/f7d85ded1544424d82a3473f9467f80f HTTP/1.0
Authorization: Basic YnJva2VyOg==
Host: lb.api-sandbox.registry.ea.openprocurement.net
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"data": {
"status": "pending",
"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:36:13.882146+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
}
}
Ми бачимо ту ж відповідь, що і після створення активу.
Подивимось, що показує список активів:
GET /api/0.1/assets HTTP/1.0
Authorization: Basic YnJva2VyOg==
Host: lb.api-sandbox.registry.ea.openprocurement.net
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"next_page": {
"path": "/api/0.1/assets?offset=2017-08-16T18%3A36%3A13.882146%2B03%3A00",
"uri": "http://lb.api-sandbox.registry.ea.openprocurement.net/api/0.1/assets?offset=2017-08-16T18%3A36%3A13.882146%2B03%3A00",
"offset": "2017-08-16T18:36:13.882146+03:00"
},
"data": [
{
"id": "f7d85ded1544424d82a3473f9467f80f",
"dateModified": "2017-08-16T18:36:13.882146+03:00"
}
]
}
Ми бачимо внутрішнє id активу (що може бути використано для побудови повної URL-адреси, якщо додати http://lb.api-sandbox.registry.openprocurement.net/api/0/assets/) та його dateModified дату.
Попередній актив був створений лише з обов’язковими полями. Тепер додамо актив з максимально допустимим набором даних при створенні (актив повинен бути у статусі created).
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/bb2d3063c01346cb8a7f9f747dbd02b6
X-Content-Type-Options: nosniff
{
"access": {
"token": "a14cec8e4d3f4888a27f31fb0b54ee25"
},
"data": {
"status": "draft",
"assetType": "basic",
"classification": {
"scheme": "CAV",
"description": "Земельні ділянки",
"id": "39513200-3"
},
"title": "Земля для космодрому",
"assetID": "UA-2017-08-16-000002",
"value": {
"currency": "UAH",
"amount": 100.0,
"valueAddedTaxIncluded": true
},
"dateModified": "2017-08-16T18:36:14.032506+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:14.030468+03:00",
"id": "bb2d3063c01346cb8a7f9f747dbd02b6",
"unit": {
"code": "39513200-3",
"name": "item"
},
"quantity": 5
}
}
І знову код відповіді 201 Created, заголовок Location і тіло з додатковим id, assetID, та властивість dateModified.
Перевіримо, що містить реєстр активів:
GET /api/0.1/assets HTTP/1.0
Authorization: Basic YnJva2VyOg==
Host: lb.api-sandbox.registry.ea.openprocurement.net
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"next_page": {
"path": "/api/0.1/assets?offset=2017-08-16T18%3A36%3A13.882146%2B03%3A00",
"uri": "http://lb.api-sandbox.registry.ea.openprocurement.net/api/0.1/assets?offset=2017-08-16T18%3A36%3A13.882146%2B03%3A00",
"offset": "2017-08-16T18:36:13.882146+03:00"
},
"data": [
{
"id": "f7d85ded1544424d82a3473f9467f80f",
"dateModified": "2017-08-16T18:36:13.882146+03:00"
}
]
}
Дійсно, в нас зараз є два активи.
Модифікація активу¶
Оновимо актив шляхом надання йому усіх інших важливих властивостей:
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
}
}
Ми бачимо, що додаткові властивості об’єднані з існуючими даними активу. Додатково оновлена властивість dateModified, щоб відображати останню дату модифікації.
Ще одна перевірка списку відображає нову дату модифікації:
GET /api/0.1/assets?opt_pretty=1 HTTP/1.0
Authorization: Basic YnJva2VyOg==
Host: lb.api-sandbox.registry.ea.openprocurement.net
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"next_page": {
"path": "/api/0.1/assets?offset=2017-08-16T18%3A36%3A14.133838%2B03%3A00",
"uri": "http://lb.api-sandbox.registry.ea.openprocurement.net/api/0.1/assets?offset=2017-08-16T18%3A36%3A14.133838%2B03%3A00",
"offset": "2017-08-16T18:36:14.133838+03:00"
},
"data": [
{
"id": "f7d85ded1544424d82a3473f9467f80f",
"dateModified": "2017-08-16T18:36:14.133838+03:00"
}
]
}
Видалення активу¶
Видалимо актив
PATCH /api/0.1/assets/f7d85ded1544424d82a3473f9467f80f?acc_token=1803ee39a2164a3dacd9aee5e581aa7d HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 31
Content-Type: application/json
Host: lb.api-sandbox.registry.ea.openprocurement.net
{
"data": {
"status": "deleted"
}
}
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"data": {
"status": "deleted",
"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.273050+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:14.273050+03:00",
"id": "f7d85ded1544424d82a3473f9467f80f",
"unit": {
"code": "39513200-3",
"name": "item"
},
"quantity": 5
}
}
Інтеграція з лотами¶
GET /api/0.1/assets/11ff5b04c97040c1882f0565ab43381a HTTP/1.0
Authorization: Basic Ym90Og==
Host: lb.api-sandbox.registry.ea.openprocurement.net
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"data": {
"status": "active",
"relatedLot": "140e37e9351d461bb5f6765f6f3ba5a9",
"classification": {
"scheme": "CAV",
"description": "Земельні ділянки",
"id": "39513200-3"
},
"assetType": "basic",
"assetID": "UA-2017-08-16-000001",
"title": "Земля для космодрому",
"value": {
"currency": "UAH",
"amount": 100.0,
"valueAddedTaxIncluded": true
},
"dateModified": "2017-08-16T18:36:14.510454+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:14.510454+03:00",
"id": "11ff5b04c97040c1882f0565ab43381a",
"unit": {
"code": "39513200-3",
"name": "item"
},
"quantity": 5
}
}
GET /api/0.1/assets/11ff5b04c97040c1882f0565ab43381a HTTP/1.0
Authorization: Basic Ym90Og==
Host: lb.api-sandbox.registry.ea.openprocurement.net
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"data": {
"status": "pending",
"relatedLot": "140e37e9351d461bb5f6765f6f3ba5a9",
"classification": {
"scheme": "CAV",
"description": "Земельні ділянки",
"id": "39513200-3"
},
"assetType": "basic",
"assetID": "UA-2017-08-16-000001",
"title": "Земля для космодрому",
"value": {
"currency": "UAH",
"amount": 100.0,
"valueAddedTaxIncluded": true
},
"dateModified": "2017-08-16T18:36:14.549945+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:14.549945+03:00",
"id": "11ff5b04c97040c1882f0565ab43381a",
"unit": {
"code": "39513200-3",
"name": "item"
},
"quantity": 5
}
}
GET /api/0.1/assets/11ff5b04c97040c1882f0565ab43381a HTTP/1.0
Authorization: Basic Ym90Og==
Host: lb.api-sandbox.registry.ea.openprocurement.net
200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"data": {
"status": "complete",
"relatedLot": "33f5b2a323034850bc268e4af669358b",
"classification": {
"scheme": "CAV",
"description": "Земельні ділянки",
"id": "39513200-3"
},
"assetType": "basic",
"assetID": "UA-2017-08-16-000001",
"title": "Земля для космодрому",
"value": {
"currency": "UAH",
"amount": 100.0,
"valueAddedTaxIncluded": true
},
"dateModified": "2017-08-16T18:36:14.667379+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:14.667379+03:00",
"id": "11ff5b04c97040c1882f0565ab43381a",
"unit": {
"code": "39513200-3",
"name": "item"
},
"quantity": 5
}
}
Отримання інформації про актив¶
Отримати список всіх активів¶
-
GET
/assets
¶ Отримати список всіх активів
Приклад запиту:
GET api/0/assets HTTP/1.1 Host: lb.api-sandbox.registry.ea.openprocurement.net
Приклад відповіді:
200 OK Content-Type: application/json X-Content-Type-Options: nosniff { "next_page": { "path": "/api/0.1/assets?offset=2017-08-14T13%3A35%3A31.474578%2B03%3A00", "uri": "http://lb.api-sandbox.registry.ea.openprocurement.net/api/0.1/assets?offset=2017-08-14T13%3A35%3A31.474578%2B03%3A00", "offset": "2017-08-14T13:35:31.474578+03:00" }, "data": [ { "id": "2f684c8a57f447768a5a451e2e8e5892", "dateModified": "2017-08-14T13:35:31.474578+03:00" }, { "id": "1f28428a37f457768a5a451e2e8e5892", "dateModified": "2017-08-15T13:35:31.474578+03:00" } ] }
Query Parameters: - offset – параметр, який ви повинні додати до вихідного запиту, щоб отримати наступну сторінку
- limit – обмеження кількості активів, що повертаються (дефолтне значення - 100)
Request Headers: - Authorization – необов’язковий токен OAuth для аутентифікації
Status Codes: - 200 OK – без помилок
- 404 Not Found – ресурс не знайдено
Сортування¶
Повернені активи просортовані за датою модифікації.
Обмеження кількості активів, що повертаються¶
Ви можете контролювати кількість data записів потоку даних активів (розмір пакета) за допомогою параметра limit. Якщо він не вказаний, то дані будуть повернені пакетами по 100 елементів.
Пакети¶
Відповідь містить елемент `next_page`з такими властивостями:
offset: | Це параметр, який ви повинні додати до вихідного запиту, щоб отримати наступну сторінку. |
---|---|
path: | Це частина шляху URL-адреси з вихідними параметрами та доданим/заміненим offset параметром вище. |
uri: | Повна версія URL-адреси для наступної сторінки. |
Якщо запит наступної сторінки повертається без даних (наприклад, пустий масив), тоді немає сенсу викликати сторінки далі.
Синхронізація¶
Часто необхідно мати можливість синхронізувати зміни центральної бази даних з іншою базою даних (ми будемо називати її “локальною”). Стандартне сортування “за датою модифікації” разом із механізмом пакетування дозволяє ефективно здійснювати синхронізацію. Процес синхронізації може виконуватись посторінково, поки не буде жодних нових даних, що повертаються. Тоді синхронізатор призупиниться на деякий час, щоб дозволити центральній базі даних зареєструвати деякі зміни і спробувати завантажити наступну сторінку. next_page гарантує, що усі зміни з останнього запиту будуть включені у новий пакет.
Безпечна частота запитів на синхронізацію - раз в 5 хвилин.
Прочитати інформацію про окремі активи¶
-
GET
/assets/{uuid4:id}
¶ Отримати деталі активу
Приклад запиту:
GET /api/0.1/assets/2f684c8a57f447768a5a451e2e8e5892 HTTP/1.0 Host: lb.api-sandbox.registry.ea.openprocurement.net
Приклад відповіді:
200 OK Content-Type: application/json { "data": { "status": "pending", "assetType": "basic", "classification": { "scheme": "CAV", "description": "Земельні ділянки", "id": "39513200-3" }, "title": "Земля для космодрому", "assetID": "UA-2017-08-14-000001", "value": { "currency": "UAH", "amount": 100.0, "valueAddedTaxIncluded": true }, "dateModified": "2017-08-14T13:35:31.474578+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-14T13:35:31.472331+03:00", "id": "2f684c8a57f447768a5a451e2e8e5892", "unit": { "code": "39513200-3", "name": "item" }, "quantity": 5 } }
Request Headers: - Authorization – необов’язковий токен OAuth для аутентифікації
Status Codes: - 200 OK – без помилок
- 404 Not Found – актив не знайдено
Аутентифікація¶
Деякі запити 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. Це значення можна використати для модифікації об’єктів у “ролі Власника”.
Використання токена¶
Ви можете передати токен доступу такими способами:
параметр рядка URL запиту acc_token
заголовок HTTP запиту X-Access-Token
- 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
}
}
Робота з API в режимі кластеру¶
Дані синхронізуються на кластері з декількох серверів. Для узгодження між окремими запитами до RDB важливо, щоб клієнт працював завжди з одним сервером. Тому обов’язково використовувати реп’яшок (сookie) при подачі POST/PUT/PATCH/DELETE запитів. Реп’яшки (сookies) забезпечують прив’язку до сервера. Такий реп’яшок можна отримати через GET запит, а тоді використовувати його в POST/PUT/PATCH/DELETE.
Якщо під час операцій сервер запитаний реп’яшком недоступний або впав, клієнт отримає 412 код стану запиту і новий реп’яшок. Запит потрібно повторити з використанням нового реп’яшка.
Опції¶
Крім надання полів та їхніх значень у запиті ви можете ще вказати опції для контролю над тим, як буде оброблятись запит і як буде генеруватись відповідь. Для GET запитів, опції вказуються як URL параметри з префіксом opt_. Для POST чи PUT запитів опції вказуються в тілі, всередині об’єктів опцій вищого рівня (схожих на обє’кт даних). Опція вказана в тілі перевизначає opt_ опцію з URL параметра.
Ці опції можна комбінувати в одному запиті, хоча деякі з них можуть викликати конфлікт у відповіді.
pretty: | ?opt_pretty options: { pretty: true } Надає відповідь у форматі “pretty”. У випадку з JSON це означає правильне розбиття рядків і відступи для зручності читання. Це займе додатковий час і збільшить розмір відповіді, тому краще буде використовувати цю опцію тільки під час налагоджування (debugging). |
---|---|
jsonp: | ?opt_jsonp=myCallback Повертає відповідь у форматі JSON-P замість простого JSON, щоб дозволити запитам приходити з браузерів і працювати навколо “однакової політики походження (same origin policy).” Функція названа так само як значення параметра opt_jsonp буде викликана з одним аргументом - JavaScript об’єктом, що представляє відповідь. |
fields: | ?opt_fields=comma,separated,field,list Список додаткових полів, що міститимуться у відповіді. |
Рекомендації для роботи¶
Контроль частоти запитів¶
На “агресивні” IP адреси може бути накладено обмеження на швидкість, з якою сервери RDB опрацьовують запити. У відповідь на запити, які прийшли швидше ніж дозволено, RDB відповідає з кодом статусу 429
Очікується, що на такий код відповіді ПЗ майданчика буде реагувати таким чином: буде повторювати запити, які повернулися з таким кодом помилки, збільшуючи затримку між окремими запитами, що посилаються на RDB, доти доки запити не почнуть вдаватися (2xx/3xx відповіді).
Така поведінка серверів RDB необхідна, щоб рівномірніше розподіляти ресурси серверів між майданчиками.
Відповіді¶
Після обробки API завжди надає відповідь, звітуючи або про успіх, або про помилку.
Коди стану¶
У будь-якому випадку API повинен повернути Код стану HTTP, що вказуватиме природу помилки (див. внизу), з тілом відповіді у форматі JSON, що міститиме додаткову інформацію.
- 200
Успіх. Якщо це був запит про інформацію, то вона буде доступна у data полі на верхньому рівні тіла відповіді.
- 201
Створено. Його інформація доступна у data полі на верхньому рівні тіла відповіді. API URL, де об’єкт можна прочитати, міститься у Location заголовку відповіді.
- 400
Неправильний запит. Зазвичай це відбувається через відсутній або неправильний параметр. Перевірте документацію та синтаксис вашого запиту і спробуйте ще раз.
- 401
Несанкційонований доступ. Не було надано дійсного API ключа разом із запитом, тому API не може зв’язати користувача із запитом.
- 403
Заборонено. API ключ та синтаксис запиту були дійсними, але сервер відмовляється виконати запит. Це може статися, якщо ви пробуєте прочитати або записати об’єкти чи властивості, до яких не маєте доступу.
- 404
Ресурс не знайдено. Або даний метод та шлях запиту не вказують відому дію для API, або об’єкт, вказаний у запиті, не існує.
- 412
Збій під час обробки попередньої умови. Дивіться розділ Pобота з API в режимі API in cluster mode.
- 429
Перевищено допустиму частоту запитів. Дивіться розділ Контроль частоти запитів.
- 500
Помилка сервера. Була проблема зі сторони OpenProcurement.
Відповідь з повідомленням про успіх¶
Кожен успішний запит вичитки, створення, оновлення, чи заміни отримує відповідь, що містить data атрибут. Цей data атрибут містить повне представлення JSON об’єкта після операції. Якщо деякі дані були згенеровані у результаті обробки (наприклад, нові ID об’єкта або modified дата), то вони присутні у відповіді.
Запити списку отримують схожі відповіді, але замість одного об’єкта в data атрибуті, JSON відповідь містить колекцію об’єктів.
Приклад відповіді з повідомленням про успіх¶
Це відповідь, що описує актив.
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/bb2d3063c01346cb8a7f9f747dbd02b6
X-Content-Type-Options: nosniff
{
"access": {
"token": "a14cec8e4d3f4888a27f31fb0b54ee25"
},
"data": {
"status": "draft",
"assetType": "basic",
"classification": {
"scheme": "CAV",
"description": "Земельні ділянки",
"id": "39513200-3"
},
"title": "Земля для космодрому",
"assetID": "UA-2017-08-16-000002",
"value": {
"currency": "UAH",
"amount": 100.0,
"valueAddedTaxIncluded": true
},
"dateModified": "2017-08-16T18:36:14.032506+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:14.030468+03:00",
"id": "bb2d3063c01346cb8a7f9f747dbd02b6",
"unit": {
"code": "39513200-3",
"name": "item"
},
"quantity": 5
}
}
Відповідь з повідомленням про помилку¶
У випадку помилки, тіло відповіді міститиме errors поле на вищому рівні. Воно містить масив як мінімум одного помилкового об’єкта описаного нижче:
location: | Частина запиту спричинює помилку. Можливі значення це header (заголовок) або body (тіло). |
---|---|
name: |
|
description: | Докладний (придатний для читання людиною) опис помилки. |
Приклад відповіді з повідомленням про помилку¶
Зразок нижче вказує на неповний запит.
POST /api/0.1/assets?opt_pretty=1 HTTP/1.0
Authorization: Basic YnJva2VyOg==
Content-Length: 4
Content-Type: application/x-www-form-urlencoded
Host: lb.api-sandbox.registry.ea.openprocurement.net
415 Unsupported Media Type
Content-Type: application/json
X-Content-Type-Options: nosniff
{
"status": "error",
"errors": [
{
"description": "Content-Type header should be one of ['application/json']",
"location": "header",
"name": "Content-Type"
}
]
}