.. title:: Точка входу "Адвокат" для API проекту "Суд на долоні" .. meta:: :desctription: Точка входу "Адвокат" для API проекту "Суд на долоні" :robots: index, follow :viewport: width=device-width, initial-scale=1 :language: uk :keywords: Суд на долоні, API, адвокат :author: Кирило Захаров :copyright: Суд на долоні Адвокат ======= Точка входу "Адвокат" повертає інформацію стосовно адвокатів України. Загальна інформація ------------------- Інформація про адвокатів з даних Єдиного реєстру Адвокатів України, опублікованого на `офіційному сайті Національної Асоціації Адвокатів України `_. Уся інформація щодо юридичних осіб оновлюється один раз на 1-2 тижні. Кількість адвокатів ------------------------ GET-запит за адресою ``https://api.conp.com.ua/api/v1.0/attorney`` повертає загальну кількість адвокатів в системі .. sourcecode:: http GET /attorney HTTP/1.0 Host: https://api.conp.com.ua/api/v1.0 { "message": 44925 } ----- Отримання інформації про адвоката --------------------------------- GET-запит за адресою ``https://api.conp.com.ua/api/v1.0/attorney/:id`` повертає інормацію про адвоката за `відповідною схемою даних `_ `. Де id - номер адвокатського свідоцтва. .. sourcecode:: http GET /attorney/7820 HTTP/1.0 Host: https://api.conp.com.ua/api/v1.0 { "id": "7820", "accountHolder": "Рада адвокатів Закарпатської області", "certificateNumber": "10", "certificateIssuer": "Закарпатська обласна КДКА", "certificateDate": null, "person": { "source": "Масяк Нінель Степанівна", "idName": "Масяк Н. С.", "fullName": "Масяк Нінель Степанівна", "familyName": "Масяк", "givenName": "Нінель", "additionalName": "Степанівна", "sex": "жінка", "jobTitle": "Адвокат" }, "organization": { "address": { "source": "88000, Закарпатська обл., Ужгородський р-н., Ужгород, вул. Руська , буд. 25, квартира 2", "countryName": "Україна", "postalCode": "88000", "region": "Закарпатська область", "district": "Ужгородський район", "streetNumber": "25", "streetAddress": "вулиця Руська", "apartment": "2", "fullAddress": "88000, Закарпатська область, Ужгородський район, вулиця Руська, 2" }, "phones": [], "email": "ninellems@gmail.com" }, "workplace": { "source": "88000, Закарпатська обл., Ужгородський р-н., Ужгород, пл. Театральна, буд. 13", "countryName": "Україна", "postalCode": "88000", "region": "Закарпатська область", "district": "Ужгородський район", "streetNumber": "13", "streetAddress": "площа Театральна, 13", "fullAddress": "88000, Закарпатська область, місто Ужгород, площа Театральна, 13", "locality": "місто Ужгород" }, "phone": [ "+38 (050) 953 61 10" ], "email": [ "ninellems@gmail.com" ], "updatedAt": "2018-08-07T17:56:28.574Z" } ----- Пошук адвокатів --------------- POST-запит за адресою ``https://api.conp.com.ua/api/v1.0/attorney/search`` дозволяє шукати адвокатів. POST-запит має містити JSON з наступними змінними :query: рядок Перелік термінів для повнотекстового пошуку. :defaultOperator: рядок Приймає значення ``or`` або ``and``, щоб шукати будь-який з термінів для повнотекстового пошуку або усі терміни. :filter: об'єкт Об'єкт, який містить перелік усіх пошукових фільтрів, встановлених користувачем. :sort: об'єкт Об'єкт, який визначає порядок сортування результатів. :from: ціле число (integer) Кількість об'єктів, яку необхідно пропустити (використовується для пагінації). :aggregation: булеве значення Якщо встановлено значення ``false``, то в результаті буде отримано перелік адвокатів, які відповідають повнотекстовому запиту та фільтрам. Якщо встановлено значення ``true``, то повертає перелік агрегацій для фасетного пошуку. Фільтри ~~~~~~~ Кожен з фільтрів має бути об'єктом з певною назвою (поле, за яким відбувається фільтрація) та будуватися за схемою: :list: масив рядків Перелік точних значень термінів для фільтрації результату. :operator: рядок Приймає значення ``or`` або ``and``, щоб у результат попадали сутності з будь-яким зі значень фільтру або усі значення фільтру. Адвокатів можна фільтрувати за точними значеннями таких змінних: * **accountHolder** - Назва організації, на обліку якої перебуває адвокат * **certificateDate** - Дата видачі свідоцтва на здійснення адвокатської діяльності * **certificateIssuer** - Назва органу, що видав свідоцтво на здійснення адвокатської діяльності * **certificateNumber** - Номер свідоцтва на здійснення адвокатської діяльності * **sex** - Стать адвоката * **workplace.region** - Область, в якій працює адвокат * **workplace.district** - Район або район у місті, в якому працює адвокат * **workplace.locality** - Населений пункт, в якому працює адвокат * **workplace.fullAddress** - Повна адреса, за якою працює адвокат * **organization.name** - Повна назва організації, в якій працює адвокат Приклад використання фільтру - "(1) Адвокати, які облікуються у Раді адвокатіва Дніпропетровської області (2) та працюють у Донецькій області": .. sourcecode:: http ... {"filter": { "accountHolder": { "list": [ "Рада адвокатів Дніпропетровської області" ], "operator": "or" }, "workplace.region": { "list": [ "Донецька область" ], "operator": "or" } } ... Сортування ~~~~~~~~~~ Для адвокатів дозволено сортування за повним іменем (`person.fullName.sort`) та датою видачі свідоцтва (``certificateDate``). Якщо змінна ``sort`` у запиті має значення ``{}``, то сортування відбуватиметься за релевантністю. Приклад сортування за датою видачі свідоцтва: .. sourcecode:: http ... "sort": { "certificateDate": { "order": "desc" } } ... Агрегація ~~~~~~~~~ Для суддів передбачено агрегацію за такими змінними: * Організація, в якій працює адвокат * Організація, в якій обліковується адвокат * Організація, яка видала адвокатське свідоцтво * Область, де працює адвокат * Населений, де працює адвокат * Район або район у місті, де працює адвокат * Стать адвоката Агрегації розраховуються автоматично для усіх змінних, для яких встановлено фільтр. Якщо необхідно отримати агрегацію без фільтрації, то необхідно задати "пустий" фільтр таким чином: .. sourcecode:: http ... "filter": { "certificateIssuer": { "list": [], "operator": "or" } } ... Приклад повного запиту та відповіді ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. sourcecode:: http POST /attorney/search HTTP/1.0 Host: https://api.conp.com.ua/api/v1.0 { "query": "", "defaultOperator": "or", "filter": { "accountHolder": { "list": [], "operator": "or" }, "certificateDate": { "list": [], "operator": "or", "type": "object" }, "certificateIssuer": { "list": [ "Київська обласна КДКА" ], "operator": "or" }, "certificateNumber": { "list": [], "operator": "or" }, "fullName": { "list": [], "operator": "or" }, "sex": { "list": [], "operator": "or" }, "workplace.region": { "list": [], "operator": "or" }, "workplace.district": { "list": [], "operator": "or" }, "workplace.locality": { "list": [], "operator": "or" }, "workplace.fullAddress": { "list": [], "operator": "or" }, "organization.name": { "list": [ "Адвокатське обa'єднання: \"Юридична фірма \"ЕКВО\"" ], "operator": "or" } }, "sort": { "certificateDate": { "order": "desc" } }, "searchIndex": "attorney", "from": 0, "aggregation": false } { "total": 4, "items": [ { "accountHolder": "Рада адвокатів Київської області", "certificateDate": null, "certificateIssuer": "Київська обласна КДКА", "certificateNumber": "3854/10", "person": { "jobTitle": "Адвокат", "fullName": "Бєлоусов Павло Іванович" }, "organization": { "name": "Адвокатське об'єднання: \"Юридична фірма \"ЕКВО\"" }, "id": "26960", "workplace": { "streetAddress": "вулиця Бехтеревський, 4", "district": "Шевченківський район", "locality": "місто Київ", "region": "місто Київ", "apartment": "літера \"А\"" } }, { "accountHolder": "Рада адвокатів Київської області", "certificateDate": null, "certificateIssuer": "Київська обласна КДКА", "certificateNumber": "3855/10", "person": { "jobTitle": "Адвокат", "fullName": "Терещенко Олександр Сергійович" }, "organization": { "name": "Адвокатське об'єднання: \"Юридична фірма \"ЕКВО\"" }, "id": "30552", "workplace": { "streetAddress": "вулиця Бехтеревський, 4", "district": "Шевченківський район", "locality": "місто Київ", "region": "місто Київ", "apartment": "літера \"А\"" } }, { "accountHolder": "Рада адвокатів Київської області", "certificateDate": null, "certificateIssuer": "Київська обласна КДКА", "certificateNumber": "3497/10", "person": { "jobTitle": "Адвокат", "fullName": "Дрюк Наталія Олександрівна" }, "organization": { "name": "Адвокатське об'єднання: \"Юридична фірма \"ЕКВО\"" }, "id": "24710", "workplace": { "streetAddress": "вулиця Бехтеревський, 4", "district": "Шевченківський район", "locality": "місто Київ", "region": "місто Київ", "apartment": "літера \"А\"" } }, { "accountHolder": "Рада адвокатів Київської області", "certificateDate": null, "certificateIssuer": "Київська обласна КДКА", "certificateNumber": "2816/10", "person": { "jobTitle": "Адвокат", "fullName": "Мамуня Олександр Сергійович" }, "organization": { "name": "Адвокатське об'єднання: \"Юридична фірма \"ЕКВО\"" }, "id": "26197", "workplace": { "streetAddress": "вулиця Бехтеревський, 4", "district": "Шевченківський район", "locality": "місто Київ", "region": "місто Київ", "apartment": "літера \"А\"" } } ] }