.. 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": "зареєстровано" } } ] }