.. 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": "літера \"А\""
}
}
]
}