.. title:: Точка входу "Суд" для API проекту "Суд на долоні"
.. meta::
:desctription: Точка входу "Суд" для API проекту "Суд на долоні"
:robots: index, follow
:viewport: width=device-width, initial-scale=1
:language: uk
:keywords: Суд на долоні, API, суд
:author: Кирило Захаров
:copyright: Суд на долоні
Суд
===
Точка входу "Суд" повертає інформацію про суди України.
Загальна інформація
-------------------
Інформація про суди з даних Державної судової адміністрації, опублікованих на `відповідному порталі відкритих даних `_.
Оновлюється за необхідністю.
Кількість судів
--------------------
GET-запит за адресою ``https://api.conp.com.ua/api/v1.0/court`` повертає загальну кількість судів в системі
.. sourcecode:: http
GET /court HTTP/1.0
Host: https://api.conp.com.ua/api/v1.0
{ "message": 801 }
-----
Отримання інформації про суди
-----------------------------------
GET-запит за адресою ``https://api.conp.com.ua/api/v1.0/court/:id`` повертає інормацію про суд за `відповідною схемою даних `_ . Де ``id`` - це код суду.
.. sourcecode:: http
GET /court/2403 HTTP/1.0
Host: https://api.conp.com.ua/api/v1.0
{
"courtCode": "2403",
"courtRegion": "Чернівецька область",
"instanceType": "Перша",
"courtName": "Глибоцький районний суд Чернівецької області",
"address": {
"source": "60400, смт Глибока, вул. Борців за волю України, 2 а",
"countryName": "Україна",
"postalCode": "60400",
"locality": "селище міського типу Глибока",
"streetNumber": "2 а",
"streetAddress": "вулиця Борців За Волю України, 2 а",
"fullAddress": "60400, Чернівецька область, Глибоцький район, селище міського типу Глибока, вулиця Борців За Волю України, 2 а",
"geo": {
"lat": "48.087002",
"lon": "25.928869"
},
"region": "Чернівецька область",
"district": "Глибоцький район",
"oldStreet": "вулиця Глибоцька, вулиця Борцям за волю України"
},
"url": "http://court.gov.ua/sud2403/",
"phone": [
"(373) 42 14 52"
],
"email": "inbox@gl.cv.court.gov.ua",
"openingHours": [
"Пн-Чт з 08:30 до 17:30",
"Пт з 08:30 до 16:40",
"Перерва з 13:00 до 13:50"
],
"organization": {
"legalName": "ГЛИБОЦЬКИЙ РАЙОННИЙ СУД ЧЕРНІВЕЦЬКОЇ ОБЛАСТІ",
"name": "ГЛИБОЦЬКИЙ РАЙОННИЙ СУД",
"identifier": {
"scheme": "UA-EDR",
"id": "02885623",
"valid": true
},
"currentStatus": "зареєстровано",
"kved": {
"part": "84",
"group": "23"
},
"full_kved": "84.23 Діяльність у сфері юстиції та правосуддя",
"address": {
"source": "60400, Чернівецька обл., Глибоцький район, селище міського типу Глибока, ВУЛИЦЯ БОРЦІВ ЗА ВОЛЮ УКРАЇНИ, будинок 2, корпус А",
"countryName": "Україна",
"postalCode": "60400",
"region": "Чернівецька область",
"district": "Глибоцький район",
"locality": "селище міського типу Глибока",
"streetNumber": "2",
"streetAddress": "вулиця Борців За Волю України, 2",
"fullAddress": "60400, Чернівецька область, Глибоцький район, селище міського типу Глибока, вулиця Борців За Волю України, 2",
"oldStreet": "вулиця Глибоцька, вулиця Борцям за волю України"
},
"head": {
"source": "ЦУРКАН ВІТАЛІЙ ВАСИЛЬОВИЧ",
"idName": "Цуркан В. В.",
"fullName": "Цуркан Віталій Васильович",
"familyName": "Цуркан",
"givenName": "Віталій",
"additionalName": "Васильович",
"sex": "чоловік",
"jobTitle": "Директор"
},
"updatedAt": "2018-08-06T20:54:27.833Z"
},
"updatedAt": "2018-08-10T13:15:42.915Z"
}
-----
Пошук судів
-----------
POST-запит за адресою ``https://api.conp.com.ua/api/v1.0/court/search`` дозволяє шукати суди.
POST-запит має містити JSON з наступними змінними
:query:
рядок
Перелік термінів для повнотекстового пошуку.
:defaultOperator:
рядок
Приймає значення ``or`` або ``and``, щоб шукати будь-який з термінів для повнотекстового пошуку або усі терміни.
:filter:
об'єкт
Об'єкт, який містить перелік усіх пошукових фільтрів, встановлених користувачем.
:sort:
об'єкт
Об'єкт, який визначає порядок сортування результатів.
:from:
ціле число (integer)
Кількість об'єктів, яку необхідно пропустити (використовується для пагінації).
:aggregation:
булеве значення
Якщо встановлено значення ``false``, то в результаті буде отримано перелік судів, які відповідають повнотекстовому запиту та фільтрам. Якщо встановлено значення ``true``, то повертає перелік агрегацій для фасетного пошуку.
Фільтри
~~~~~~~
Кожен з фільтрів має бути об'єктом з певною назвою (поле, за яким відбувається фільтрація) та будуватися за схемою:
:list:
масив рядків
Перелік точних значень термінів для фільтрації результату.
:operator:
рядок
Приймає значення ``or`` або ``and``, щоб у результат попадали сутності з будь-яким зі значень фільтру або усі значення фільтру.
Суди можна фільтрувати за точними значеннями таких змінних:
* **instanceType** - Інстанція суду
* **address.region** - Область суду
* **address.district** - Район або район у місті суду
* **address.locality** - Населений пункт суду
* **address.fullAddress** - Повна адреса суду
* **organization.currentStatus** - Поточний статус суду
Приклад використання фільтру - "(1) Суди першої інстанції (2) міста Запоріжжя":
.. sourcecode:: http
...
{"filter": {
"instanceType": {
"list": [
"Перша"
],
"operator": "or"
},
"address.locality": {
"list": [
"місто Запоріжжя"
],
"operator": "or"
}
}
...
Сортування
~~~~~~~~~~
Для судів дозволено сортування за назвою організації (`courtName.sort`). Якщо змінна ``sort`` у запиті має значення ``{}``, то сортування відбуватиметься за релевантністю.
Приклад сортування за назвою суду:
.. sourcecode:: http
...
"sort": {
"courtName.sort": { "order": "desc" }
}
...
Агрегація
~~~~~~~~~
Для судів передбачено агрегацію за такими змінними:
* Інстанція суду
* Область суду
* Населений пункт суду
* Район суду
Агрегації розраховуються автоматично для усіх змінних, для яких встановлено фільтр. Якщо необхідно отримати агрегацію без фільтрації, то необхідно задати "пустий" фільтр таким чином:
.. sourcecode:: http
...
"filter": {
"address.locality": {
"list": [],
"operator": "or"
}
}
...
Приклад повного запиту та відповіді
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. sourcecode:: http
POST /court/search HTTP/1.0
Host: https://api.conp.com.ua/api/v1.0
{
"query": "",
"defaultOperator": "or",
"filter": {
"instanceType": {
"list": [
"Апеляційна"
],
"operator": "or"
},
"address.region": {
"list": [],
"operator": "or"
},
"address.district": {
"list": [],
"operator": "or"
},
"address.locality": {
"list": [
"місто Львів"
],
"operator": "or"
},
"address.fullAddress": {
"list": [],
"operator": "or"
},
"organization.currentStatus": {
"list": [],
"operator": "or"
}
},
"searchIndex": "court",
"aggregation": false
}
{
"total": 3,
"items": [
{
"courtName": "Апеляційний суд Львівської області",
"courtCode": "1390",
"instanceType": "Апеляційна",
"organization": {
"head": {
"fullName": "Каблак Петро Іванович"
},
"address": {
"streetAddress": "площа Соборна, 7",
"district": "Личаківський район",
"locality": "місто Львів",
"region": "Львівська область"
},
"currentStatus": "зареєстровано"
}
},
{
"courtName": "Львівський апеляційний адміністративний суд",
"courtCode": "9104",
"instanceType": "Апеляційна",
"organization": {
"head": {
"fullName": "Богаченко Сергій Іванович"
},
"address": {
"streetAddress": "вулиця Саксаганського, 13",
"district": "Галицький район",
"locality": "місто Львів",
"region": "Львівська область"
},
"currentStatus": "зареєстровано"
}
},
{
"courtName": "Львівський апеляційний господарський суд",
"courtCode": "5036",
"instanceType": "Апеляційна",
"organization": {
"head": {
"fullName": "Плотніцький Борис Дмитрович"
},
"address": {
"streetAddress": "вулиця Личаківська, 81",
"district": "Личаківський район",
"locality": "місто Львів",
"region": "Львівська область"
},
"currentStatus": "зареєстровано"
}
}
]
}