В КПІ навчаєтся та працює багато талановитих студентів та викладачів, що не звикли сидіти склавши руки.
Команда приймальної комісії відкриває доступ до частини інформації, для того щоб дати можливість найбільш вправним та активним, використовуючи коректну й повну інформацію будувати власні сервіси й додатки.
Наразі доступ відкритий до інформації про інститути та факультети, спеціальності, спеціалізації та зв'язки між ними.
Ведутся роботи щодо відкриття інформації по рейтинговим спискам, базі супергероїв КПІ, вірогідності вступу за результатами ЗНО та інших модулів порталу.
Якшо Ви знайши помилку в роботі API або порталу приймальної комісії - напишіть
йому, або
їй.
В цій версії API доступ надається тільки за запитом, виконанним методом GET.
В усіх прикладах {entity} - назва сутності, наприклад, institutes
В API можливе звернення до конкретного поля за його ідентифікатором де {id} - id строки. Формат такого запиту:
GET http://pk.kpi.ua/api/institutes/{id}
Загальний список
Для отримання повного списку - зверніться за наступним форматом url:
GET http://pk.kpi.ua/api/{entity}
Відповіддю на такий запит буде строка наступного формату (приклад):
{"entity":{"columns":["id","name"],"records":[[1,"Інтернет"],[3,"Розробка"]]}}
Загальний список + трансформації
Повний список рядків таблиці з перетворенням їх в об'єкти:
GET http://pk.kpi.ua/api/{entity}?transform=1
Відповіддю на такий запит буде строка наступного формату (приклад):
{"categories":[{"id":1,"name":"Інтернет"},{"id":3,"name":"Розробка"}]}
Примітка: подібні перетворення створюють зайві навантаження на сервер. Такий самий результат може бути отриманий завдяки обробці данних на клієнтській стороні.
Загальний список + фільтри
Пошук реалізовано за допомогою параметру "фільтр". Задання йде наступним чином: ім'я колонки - кома - тип фільтрації - кома - значення по якому Ви хочете відфільтрувати.
Типи фільтрації, що підтримуются:
- cs: містить рядок (рядок містить значення)
- sw: почати з (рядок починається зі значенням)
- ew: закінчуватися (кінець рядка із значенням)
- eq: рівна (рядок або число точно відповідає)
- lt: нижче (число менше, ніж значення)
- le: нижче або дорівнює (число повинне бути менше або дорівнює значенню)
- ge: більше або дорівнює (число більше або дорівнює значенню)
- gt: більше (число більше, ніж значення)
- bt: між (число між значеннями, розділеними двома комами)
- in: в (число в списку значень, розділенному комами)
- is: є null (поле містить значення "NULL")
- Ви можете викорисовувати зворотній фільтр, додаючи літеру "n", так що "eq" стає "neq".
Приклади:
GET http://pk.kpi.ua/api/{entity}?filter=name,eq,Internet
GET http://pk.kpi.ua/api/{entity}?filter=name,sw,Inter
GET http://pk.kpi.ua/api/{entity}?filter=id,le,1
GET http://pk.kpi.ua/api/{entity}?filter=id,ngt,2
GET http://pk.kpi.ua/api/{entity}?filter=id,bt,1,1
GET http://pk.kpi.ua/api/{entity}?filter={entity}.id,eq,1 (див. примітку)
Результат:
{"entity":{"columns":["id","name"],"records":[[1,"Інтернет"]]}}
Примітка: Ви можете чітко вказувати ім'я сутності перед ім'ям поля, розділяючи їх точкою.
Загальний список + фільтри + задовільнення фільтрів
Кілька фільтрів можуть бути застосовані за допомогою "filter[]" замість "filter" в якості імені параметра. Тоді параметр "satisfy" використовується, щоб вказати, чи є "all" (за замовчуванням) або "any" фільтр повинен бути використаний.
Приклад:
GET http://pk.kpi.ua/api/{entity}?filter[]=id,eq,1&filter[]=id,eq,3&satisfy=any
GET http://pk.kpi.ua/api/{entity}?filter[]=id,ge,1&filter[]=id,le,3&satisfy=all
GET http://pk.kpi.ua/api/{entity}?filter[]=id,ge,1&filter[]=id,le,3&satisfy={entity}.all
GET http://pk.kpi.ua/api/{entity}?filter[]=id,ge,1&filter[]=id,le,3
Результат:
{"entity":{"columns":["id","name"],"records":[[1,"Інтернет"],[3,"Розробка"]]}}
Примітка: Ви можете вказати "satisfy={entity_one}.all, {entity_two}.any", якщо ви хочете змішати "і" та "або" для різних таблиць.
Загальний список + вибірка стовпців
За умовчанням вибрані всі стовпчики. За допомогою параметра "columns" можна вибрати певні стовпці. Кілька стовпців повинні бути розділені комою. Зірочка ("*") може бути використаний як шаблон для позначення "всі стовпці". Схоже на "columns" ви можете використовувати параметр "exclude", щоб видалити певні стовпці.
Приклад:
GET http://pk.kpi.ua/api/{entity}?columns=name
GET http://pk.kpi.ua/api/{entity}?columns={entity}.name
GET http://pk.kpi.ua/api/{entity}?exclude={entity}.id
Результат:
{"entity":{"columns":["name"],"records":[["Розробка"],["Інтернет"]]}}
Примітка: Стовпці, які використовуються для включення пов'язаних об'єктів автоматично додаються і не можуть бути виключені з виведення.
Загальний список + порядок
За допомогою параметра "order" ви можете сортувати. За замовчуванням сортування в порядку зростання, але вказавши "desc" це може бути скасовано.
Приклад:
GET http://pk.kpi.ua/api/{entity}?order=name,desc
GET http://pk.kpi.ua/api/{entity}?order[]=icon,desc&order[]=name
Результат:
{"entity":{"columns":["id","name"],"records":[[3,"Розробка"],[1,"Інтернет"]]}}
Примітка: можна сортувати по декількох полях, використовуючи "order[]" замість "order" в якості імені параметра.
Загальний список + порядок + пагінація
Параметр "page" є № сторінки. Розмір сторінки за замовчуванням становить 20, але може бути відрегульовано (наприклад, до 50).
Приклад:
GET http://pk.kpi.ua/api/{entity}?order=id&page=1
GET http://pk.kpi.ua/api/{entity}?order=id&page=1,50
Результат:
{"entity":{"columns":["id","name"],"records":[[1,"Інтернет"],[3,"Розробка"]],"results":2}}
Примітка: Сторінки, що не мають порядку не можуть бути пронумеровані.
Для отримання списку інститутів з інформацією потрібно звертатися за наступним посиланням:
GET http://pk.kpi.ua/api/institutes
Доступні поля:
Назва |
Значення |
id |
ідентифікатор |
name |
Повна назва факультету чи інституту |
shortname |
Коротка назва факультету чи інституту |
type |
тип (факультет/інститут/..) |
website |
Вебсайт |
phone |
Телефони |
address |
Адреса |
home |
Корпуси |
vk |
Сторінка вконтакті |
youtube |
Сторінка на youtube |
facebook |
Сторінка на facebook |
students |
Кількість студентів |
Для отримання типів інститутів з інформацією потрібно звертатися за наступним посиланням:
GET http://pk.kpi.ua/api/institute_types
Доступні поля:
Назва |
Значення |
id |
ідентифікатор |
name |
Повна назва типу (факультет, інститут, тощо) |
Для отримання списку спеціалізацій з інформацією потрібно звертатися за наступним посиланням:
GET http://pk.kpi.ua/api/specialisations
Доступні поля:
Назва |
Значення |
id |
ідентифікатор |
name |
Повна назва специалізації |
description |
Опис спеціалізації |
parent_speciality_id |
ідентифікатор спеціальності, до якої належить специалізація |
parent_institute_id |
ідентифікатор інституту/факультету, до якої належить специалізація |
denna |
Денна форма навчання (Так/Ні) |
zaochna |
Заочна форма навчання (Так/Ні) |
ms_denna |
Денна форма навчання (молодші спеціалісти) (Так/Ні) |
ms_zaochna |
Заочна форма навчання (молодші спеціалісти) (Так/Ні) |
Для отримання списку спеціальностей з інформацією потрібно звертатися за наступним посиланням:
GET http://pk.kpi.ua/api/specialities
Доступні поля:
Назва |
Значення |
id |
ідентифікатор |
name |
Повна назва специалізації |
number |
№ спеціальності |
description |
Опис спеціальності |
zno |
перелік предметів ЗНО, необхідне для вступу на спеціальність |
Для отримання списку спеціальностей в інститутах - з інформацією потрібно звертатися за наступним посиланням:
GET http://pk.kpi.ua/api/specialities_institutes
Доступні поля:
Назва |
Значення |
id |
ідентифікатор |
id_specialities |
ідентифікатор спеціальності |
id_institutes |
ідентифікатор інституту |
Для отримання списку супергероїв КПІ потрібно звертатися за наступним посиланням:
GET http://pk.kpi.ua/api/superheroes_people
Доступні поля:
Назва |
Значення |
id |
ідентифікатор |
name |
Ім'я супергероя |
page_vk |
ідентифікатор сторінки супергероя в vk |
page_facebook |
ідентифікатор сторінки супергероя в facebook |
institute_id |
ідентифікатор інституту/факультету супергероя |
speciality_id |
ідентифікатор спеціальності, за якою навчаєтся студент |
hostel |
Чи є студент мешканцем гуртожитку (0 - так, 1 - ні) |
noob |
Чи є студент учнем старших чи молодших курсів (0 - студент молодших курсів, 1 - студент старших курсів).
Студент вважаеється студентом старших курсів, якщо навчаєтся на 3 році навчання і вище. |
verified |
Чи верифікована сторінка супергероя
(0 - студент верифікований і відображаєтся в списках супергероїв, 1 - студент не верифікований) |