На сьогоднішній день галузь ІТ є однією з тих, що розвиваються найбільш стрімко. Процес розвитку - це завжди накопичення великої кількості знань, які необхідно постійно узагальнювати та систематизувати.
Процес систематизації, в свою чергу, призводить до розширення базового словникового запасу.
Чому це важливо згадати? Справа в тому, що чим ширший базовий словниковий запас, тим складніше заглибитися в деталі людині, яка не належить до індустрії.
З технарями (підрядниками) все зрозуміло: вони працюють з технологіями і користуються термінами постійно, адже це значно пришвидшує комунікацію всередині команд. Для бізнесмена (замовника) всі ці «модні слова» викликають лише додаткові питання, приблизно такого типу: «Навіщо це потрібно? Чому це так дорого коштує? Чи можна обійтися без цього?
Команда Stfalcon має великий досвід у розробці мобільних додатків, і ми часто стикаємося з питаннями, які можна назвати "типовими". Одне з них - "Навіщо потрібен API для мобільного додатку?"
"Навіщо потрібен API для мобільного додатку?
Щоб полегшити розуміння цього питання, давайте розберемося, що таке API (Application Programming Interface), пояснимо простими словами. З'ясуємо, які функціональні завдання він виконує і чому без нього не обійтися мобільному додатку.
Інтерфейс
Інтерфейс - це найкраще слово, з якого варто почати знайомство з поняттям API. Інтерфейс - це примітивне поняття, яке має більш широке значення. Щоб спростити, не будемо заглиблюватися в інженерні та програмні аспекти, а звернемося до загальних тем.
Відповідаємо на питання: Які функціональні завдання виконує автомобіль?
Скоріш за все, перше, що спаде вам на думку - це переміщення людини з пункту А в пункт Б. Загалом, це дійсно основна функція автомобіля, перевезення якихось речей чи заробіток грошей - це другорядні можливі функції.
Друге питання - що змушує автомобіль рухатися, прискорюватися, сповільнюватися? Не вдаючись у деталі, можна сказати, що автомобіль як засіб пересування складається з декількох взаємопов'язаних компонентів. На верхньому рівні їх можна виділити 3: кузов, ходова частина та двигун. Кожен з цих компонентів, у свою чергу, складається з більш вузькоспеціалізованих пристроїв і механізмів, які працюють у тісній взаємодії один з одним. В результаті ми отримуємо від автомобіля те, що нам потрібно.
Сучасний автомобіль - це досить серйозне інженерне рішення, проте водієві не обов'язково з усім цим розбиратися, це просто приховано від очей. Як ви розумієте, заховано за інтерфейсом ☺
Ви правильно зрозуміли, кермо, педаль газу, коробка передач, кліматичне обладнання і навіть ваша улюблена магнітола - це частини інтерфейсу, який надається водієві для управління всією цією складною системою.
Інтерфейси є досить поширеним явищем у нашому житті:
- Людина, яка керує якоюсь машиною, має у своєму розпорядженні різноманітні регулятори, кнопки, дисплей тощо,
- Ви перемикаєте телевізійні канали за допомогою пульта дистанційного керування,
- використовуєте голосовий набір у смартфоні,
- граєте у відеоігри за допомогою джойстика,
- Граєте на піаніно, навіть так!
Беручи до уваги наведені приклади, спробуємо знайти визначення цього поняття.
Інтерфейс - це межа між двома системами, яка являє собою набір правил, методів та обмежень, що регламентують взаємодію систем між собою.
Якщо продовжити приклад з автомобілем, то можна виділити дві системи: людина і транспортний засіб. Останній задає певні правила, які дозволяють людині керувати ним, дотримуючись цих правил.
API та RESTful API
Розбиравшись з основною складовою терміну, перейдемо до розшифровки двох слів, що залишилися, - прикладне програмування (Application Programming).
Сама назва натякає на те, що термін належить до сфери програмного забезпечення. Якщо порівняти з автомобілем, то можна дійти висновку, що API розшифровується як 2 системи та правила. Системами, в даному випадку, є програмні модулі, веб-сервіси тощо.
Насправді, на цьому можна було б закінчити з API, але не згадати про RESTfull API було б неправильно. Справа в тому, що API описує явище. RESTfull API (або просто REST API), в свою чергу, є одним з підходів до реалізації API для розробки мобільних додатків.
Це важливо розуміти, оскільки часто у спілкуванні API використовують скорочено, але реалізовувати його потрібно саме засобами RESTfull API.
Відповідь на головне питання
Озброївшись знаннями про те, що таке інтерфейс, і навіть трохи торкнувшись більш вузькоспеціалізованого терміну RESTfull API, ми з легкістю можемо відповісти на головне питання «Навіщо мобільному додатку API?»
Почнемо з «анатомії». Мобільний додаток складається не тільки з візуальної частини - UI, тобто інтерфейсу користувача, але в процесі мобільної розробки необхідно вирішити цілу низку питань. Серед них: де зберігати інформацію про користувачів, повідомлення, замовлення тощо.
Рішення також повинно мати певні функції, наприклад, приймати платежі, авторизувати користувача, надсилати SMS під час реєстрації або PUSH-повідомлення при настанні якоїсь події.
Завдань багато, але яке з них (або, можливо, всі вони) є причиною для створення API для мобільного додатку?
Відповідь: жодна. Це все можна реалізувати без API в межах одного смартфона.
Насправді, основною причиною є багатокористувацька природа мобільного додатку. Як тільки з'являється більше одного користувача, виникає проблема спільного використання даних.
Уявімо ситуацію, коли користувач змінює своє ім'я. Якби дані зберігалися тільки на його смартфоні, інший користувач не зміг би дізнатися про зміну.
Крім спільного використання даних, є й інші проблеми: що робити, якщо смартфон загублено або скинуто, і як впоратися з підтримкою сотень пристроїв?
Всі ці проблеми вирішуються за рахунок централізації бізнес-логіки, а для доступу до неї розроблено API (точніше - RESTfull API, як ми вже знаємо).
Ще один випадок, коли без API не обійтися - це коли ви хочете надати клієнтам доступ до ваших даних або функцій за певну плату.
СМС-агрегатори також можуть бути взяті як приклад, їх основна функція - це відправка SMS-повідомлень. Розробнику в цьому випадку не потрібно заглиблюватися у всю складність мобільних мереж, а все, що йому потрібно зробити - це інтегрувати додаток з SMS-інтегратором і викликати необхідний API для відправки.
Враховуючи все вищеописане, можна зробити ключовий висновок: для виконання своїх функцій мобільний додаток звертається до зовнішнього сервера, який централізує всю бізнес-логіку (його ще називають Backend).
Для доступу до сервера необхідний API, тобто певний набір правил, які дозволять клієнту, тобто додатку, а точніше - клієнту, отримати до нього доступ.
Практично це виглядає так: ви хочете зробити замовлення, наприклад, ваш iOS або Android додаток за допомогою API відправить на сервер команду на створення замовлення. Сервер виконає запит і збереже всю інформацію в базі даних, таким чином інформація про замовлення буде доступна іншим користувачам.
Сподіваюсь, ця стаття допоможе вам раз і назавжди розставити всі крапки над "і" в питанні API.
Усього найкращого :)