У наш час для людей дуже важливий досвід використання веб-сайтів та мобільних додатків. Внаслідок цього, розробники постійно намагаються покращити досвід користувачів. Ці зусилля вимагають розробки гнучких та швидких додатків. Проблеми з серверами здебільшого спричиняють погіршення користувацького досвіду. Таким чином, APIs (інтерфейс прикладного програмування) веб-сервісів є важливим аспектом розробки веб- та мобільних додатків, які намагаються оптимізувати продуктивність.
Інтероперабельність
Більшість розробників програмного забезпечення для мобільних пристроїв періодично випускають оновлення для своїх додатків. Ці оновлення створюють для покращення продуктивності програми шляхом оптимізації та усунення помилок. Однак багато користувачів мобільних пристроїв не піклуються про оновлення додатків на своїх пристроях. Може пройти кілька років перш вони зважаться на встановлення нового оновлення. Через деякий час старі версії додатків стають застарілими, що в кінцевому підсумку стає проблемою. У таких випадках ці старі додатки можуть вимагати застарілих контрактів інтерфейсу прикладного програмування. Схожі проблеми вимагають необхідності забезпечення зворотної сумісності інтерфейсів програмування, які використовуються мобільними додатками.
Для досягнення зворотної сумісності можна використовувати два методи. До них відносяться:
-
Expand-Contract модель;
-
Версіонування.
Expand-Contract модель
Цей підхід також називають паралельною зміною. Він використовується для запобігання змін сумісності зі змінами API. Цей метод можна зрозуміти, поглянувши на зміну назви поля. Коли ім’я обов’язкового поля перетворюється з корисних даних для реакції інтерфейсу прикладного програмування, цей процес являє собою зміни протилежно-несумісного (порушеного) контракту API. Найкращий спосіб вирішити цю проблему – додати ще одне поле. Фактичне поле можна зберегти, якщо воно використовуватиметься в подальшому.
Версіонування
Інший підхід – це використання версіонності API. Це дозволяє одночасно зберігати та використовувати старі і нові версії інтерфейсу прикладного програмування. З плином часу стару версію можна видалити.
Багато розробників стимулюють користувачів оновлювати додатки, розповсюджуючи сповіщення про оновлення в цих програмах. Ця практика спонукає користувачів оновлювати свої додатки.
Mobile-Friendly контракти API
Коли розробники використовують дванадцяти факторну методологію додатків, вони повинні зробити наступне.
-
Запобігти або обмежити безперервну вибірку, щоб обмежити отримання даних.
-
Запобігти недостатній вибірці. У такій ситуації відповідь API не може отримати необхідні дані для додатка. В результаті виникає кілька запитів API. Оптимальна операція вимагає лише однієї дії.
-
Обмежити формат JSON Verbose у порівнянні з XML.
-
Коли інтерфейс прикладного програмування не може працювати, як зазначено вище, він буде витрачати пропускну здатність та заряд батареї пристрою користувача. Зрештою, це вплине на загальний користувацький досвід. На щастя, мобільний APIs можна оптимізувати за допомогою наступних методів.
-
GraphQL допомагає оптимізувати вибірку даних, підтримуючи її на прийнятному рівні.
-
Прагматичний RESTful API можна використовувати та оптимізувати для кожного варіанту використання.
-
Пагінація може допомогти обмежити відповідь API.
-
Використання стиснутих відповідей API може бути корисним для великих APIs.
Існує безліч проблем, пов’язаних із бекендом, який є універсальним для обробки оптимізованих контрактів інтерфейсу прикладного програмування. Спеціалізовані оптимізовані бекенди можна отримати використовуючи BFF (Backend For Frontend).