1. Вступ
  2. Що буде далі
  3. Я знайшов помилку!
  4. Загальна інформація
  5. Інститути та факультети
  6. Типи інститутів
  7. Специалізації
  8. Спеціальності
  9. Спеціальності в інститутах
  10. Супергерої КПІ

Вступ

В КПІ навчаєтся та працює багато талановитих студентів та викладачів, що не звикли сидіти склавши руки. Команда приймальної комісії відкриває доступ до частини інформації, для того щоб дати можливість найбільш вправним та активним, використовуючи коректну й повну інформацію будувати власні сервіси й додатки.

Що буде далі?

Наразі доступ відкритий до інформації про інститути та факультети, спеціальності, спеціалізації та зв'язки між ними. Ведутся роботи щодо відкриття інформації по рейтинговим спискам, базі супергероїв КПІ, вірогідності вступу за результатами ЗНО та інших модулів порталу.

Я знайшов помилку!

Якшо Ви знайши помилку в роботі 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 ідентифікатор інституту/факультету, до якої належить специалізація
day_study Денна форма навчання (Так/Ні)
night_study Заочна форма навчання (Так/Ні)

Спеціальності

Для отримання списку спеціальностей з інформацією потрібно звертатися за наступним посиланням: 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 - студент не верифікований)