You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Для формування API запитів, за допомогою яких Майданчик буде взаємодіяти з ЦБД рекомендуємо орієнтуватися на Swagger Prozorro.Sale

В цьому документі розглянемо загальні правила, які допоможуть правильно взаємодіяти з обʼєктами ЦБД.


Публікація обʼєкта (POST)

Для публікації обʼєкта в ЦБД необхідно передати запит з правильною структурою (body) із заповненими всіма обовʼязковими полями.

Якщо в запиті НЕ передано одне чи декілька обовʼязкових полів, ЦБД поверне помилку:

Для публікації невистачає одного обовʼязкового поля:

Не вистачає декількох обовʼязкових полів:


Якщо існує потреба опублікувати вкладений в масив обʼєкт, необхідно використовувати також POST

Наприклад, в раніше опублікованій Процедурі необхідно додати в items[] ще один item

Потрібно використати запит 

Цей запит НЕ змінюючи інші поля Процедури, а також не змінюючи вже існуючі в items[] обʼєкти item, додасть ще один item до items[]

Для даної ситуації бажано НЕ використовувати PATCH всієї Процедури або PATCH , де в запиті передати поля, які не змінюються.

Інші приклади використання:

  • Організатору необхідно до раніше опублікованої процедури додати ще один document в documents[]:
  •  
  • Учасник публікує свою заяву на участь, чим, на рівні ЦБД, змінює bids[] тим, що додає в нього ще один обʼєкт bid
  • Публікація Запитання (на рівні ЦБД - додати ще один обʼєкт question до questions[]
  • та інші схожі за логікою дії

Правило:

Якщо потрібно ДОДАТИ до обʼєкта типу list[] ще один підобʼєкт - використовуємо POST

Редагування обʼєкта (PATCH)

Якщо виникає потреба змінити значення в полях раніше опублікованої процедури, необхідно використовувати PATCH

Редагувати можна як весь обʼєкт повністю, так і вкладені підобʼєкти.

Наприклад,

В опублікованій процедурі необхідно редагувати guarantee, необхідно передавати всі вкладені в guarantee поля: currency та amount

curl --location --request PATCH 'https://procedure-dev.prozorro.sale/api/procedures/67ac75cc33f701d712c6d315?acc_token=5d0f4461-353e-4a61-a5c6-19fcced1e908' \
--header 'Content-Type: application/json' \
--header 'Authorization: *****' \
--data '{
    "guarantee": {
        "currency": "UAH",
        "amount": 2000
    }
}

але немає потреби надсилати весь обʼєкт Процедури разом з полями в яких не змінюється значення.

Передавати в PATCH запиті необхідно тільки поля або вкладені обʼєкти, в яких змінюються значення.

Для деталізації прикладу, варто звернути увагу, що в зазначеному випадку може НЕ мінятись guarantee.currency, а тільки guarantee.amount, але так як використовується PATCH запит всієї процедури передавати в запиті необхідно guarantee та всі вкладені в нього поля.




  • No labels