Для формування API запитів, за допомогою яких Майданчик буде взаємодіяти взаємодії Майданчика з ЦБД рекомендуємо орієнтуватися на використовувати Swagger Prozorro.Sale
В У цьому документі розглянемо розглядаємо загальні правила роботи з API, які що допоможуть правильно взаємодіяти з обʼєктами об'єктами ЦБД.
Публікація обʼєкта (POST)
Для публікації обʼєкта в ЦБД необхідно передати запит з правильною структурою (body) із заповненими всіма обовʼязковими полями.
Щоб опублікувати об'єкт у ЦБД, потрібно надіслати API-запит із правильною структурою body
, заповнивши всі обов’язкові поля.
Якщо хоча б одне обов'язкове поле відсутнєЯкщо в запиті НЕ передано одне чи декілька обовʼязкових полів, ЦБД поверне помилку:
Для публікації невистачає одного обовʼязкового поля:
...
Не вистачає декількох обовʼязкових полів:
Додавання об'єкта у вкладений масив
Якщо потрібно додати новий елемент до вкладеного масиву (наприклад, items[]
у Процедурі)Якщо існує потреба опублікувати вкладений в масив обʼєкт, необхідно використовувати також POST
, а не PATCH
.
Наприклад, в раніше опублікованій Процедурі необхідно додати в items[] ще один item
Потрібно використати запит запит:
Цей запит НЕ змінюючи інші поля Процедури, а також не змінюючи вже існуючі в items[] обʼєкти item, додасть ще один item до items[]Для даної ситуації бажано НЕ використовувати PATCH всієї Процедури або PATCH , де в запиті передати поля, які не змінюються додає новий item без зміни інших полів Процедури чи існуючих об'єктів у items[]
Note | ||
---|---|---|
| ||
Використовувати |
Інші приклади використання:
...
Якщо виникає потреба змінити значення в полях раніше опублікованої процедури, необхідно використовувати PATCHРедагувати
можна як весь обʼєкт повністю, так і вкладені підобʼєктиВ запиті на редагування необхідно передавати тільки поля, в яких змінюється значення. Якщо значення змінюється в полі вкладеного обʼєкта, а користувач використовує PATCH запит редагування батьківського обʼєкта, то передавати потрібно всі поля вкладеного обʼєкта: ті, що змінюють значення а також ті, які значення не змінюють.
Приклад 1:
В опублікованій процедурі необхідно редагувати ТІЛЬКИ guarantee, необхідно передавати всі вкладені в guarantee поля: currency та amount
...
але немає потреби надсилати в запиті весь обʼєкт Процедури разом з полями в яких не змінюється значення.
...