Вимкнути веб-API: кращі практики?


18

Врешті-решт вам доведеться знецінити частини вашого загальнодоступного веб-API. Однак я розгублений, що було б найкращим способом зробити це. Якщо у вас є велика база додатків третьої сторони, якраз старі версії API здаються невірним способом зробити це, оскільки майже всі додатки не зможуть вийти за ніч. Однак ви не можете залишити стародавні веб-api доступними назавжди, оскільки вони можуть бути застарілими або є значні зміни, які роблять роботу з нею неможливою.

Які є найкращі практики для депресирування старих веб-програм?

Відповіді:


17

Це здається, що оригінальний плакат вже ефективно, але неофіційно застарів їх API (все, що називається "старий API"). Однак, поки не буде оголошено і користувачі не отримають сповіщення про те, що API застаріло, він формально не використовується.

Невизначений API - це проміжна, неактивна стадія коду. Це останні обряди. Це період, який дозволяє усиновлювачам / споживачам переналаштовувати свої додатки на новіший API та привітатись із прощанням, помирившись з API. Деякі API можуть затримуватися довше інших, але в цей момент ми знаємо, що їх час недовгий.

Видалений API - це похорон коду. Більше це не може зробити, але належним чином розпоряджатися та належним чином запам'ятовуватися.

Багато розробників API та сервісів вибирають похорон коду, а не виконання останніх обрядів; однак я думаю, що це дещо ризиковано. Якщо якась послуга чи підтримка були зроблені, коли API / послуга була первісно прийнята або поновлена, можливо, ви захочете виконати це зобов’язання протягом розумного періоду часу перед проведенням похорону.

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

Щодо послуг, я підозрюю, що ви можете розглянути або шість місяців або рік, просто через розбіжність того, ким і яким чином можна споживати послугу, і відповідну дисперсію циклу розвитку від споживання проекту до споживчого проекту - багато проектів, які можуть споживати вашу послугу, все ще можуть мати великий дизайн на передній план, і вони можуть запланувати цикл випуску на довший рік. Більшість думок розробників ззовні підказують, що ті, хто має тривалий графік, несуть відповідальність за дотримання часу вашого циклу, а проекти, що споживають тривалий цикл, повинні прийняти швидший цикл випуску, і це може бути правдою. Але в кінцевому рахунку дата видалення - це те, що вам доведеться домовитись з користувачами.

Хорошою, але не пуленебезпечною стратегією депрекації може бути, коли оголошувати про анулювання, підкресліть часові рамки наміру видалити разом із запитом на коментар чи заперечення у форматі опитування відповідних розділів API. Якщо у вас немає списку контактів користувачів, оскільки ваша служба працює з [напів] анонімним доступом, ви можете розглянути журнали часто та активних користувачів та відправити сповіщення хосту чи адміністратору домену, щоб переслати їх так, як вони вважають за потрібне.


Ого, дуже інформативна відповідь
TheLQ

7

Більшість використовуваних нами веб-API (від компаній, таких як Google, Yahoo! та Microsoft) мають період «заходу сонця». Розробники інформуються протягом розумного часу (скажімо 3-6 місяців) про функції, які будуть амортизовані, щоб дати їм заздалегідь багато часу на оновлення.

Ви можете додати подробиці періоду заходу сонця у свої Загальні положення та умови або іншу документацію, щоб люди знали, як це працює. Це означатиме, що коли хтось вирішить використовувати ваш API, він буде знати, з якими графіками потрібно працювати. Наприклад, ви можете повідомити людям, що їм потрібно буде оновити свою систему раз на рік і мати 4 місяці повідомлення.

Також непогано використовувати нумерацію версій, щоб ви могли сказати, що, наприклад, "версія 3 скоро знеціниться, тому переконайтеся, що ваш код працює з версією 4" і т. Д. Таким чином люди знають, що якщо їх програма працює з версією 4 тоді вони готові до заходу сонця.


1

Додаткова інформація з точки зору процесу:

  • Спілкуйтеся з усіма зацікавленими сторонами : надайте іншим командам та споживачам API чітке та стисле повідомлення про причину знецінення API, стратегію, деталі плану та розкладу, значення версії та альтернативи, встановіть HTTP відповідно.

  • План і графік : На плані ви повинні мати ключові основні етапи та цільову дату закінчення припинення роботи. Ви повинні попросити споживачів того ж і вказати дати, коли вони припинять виклик. Організуйте чергову зустріч, щоб відстежувати процес та підтримувати споживачів.

  • Версії та надання альтернативних варіантів : Версія може допомогти показати зміни в основних релізах та створити стратегію припинення API.

  • Встановлення заголовка відповіді HTTP Sunset : заголовки HTTP виконують технічну частину попередження, споживачі API повинні контролювати цей тип коду, щоб зрозуміти, коли API застаріває.

  • Моніторинг до та після : Проконтролюйте своїх споживачів та повідомляйте будь-якого споживача про те, що все-таки користування API після певного періоду є корисною інформацією, щоб не пропустити жодне програмне забезпечення.


0

Окрім існуючих відповідей, вам слід передбачити заміну заміни або план міграції при видаленні чогось, щоб ваші користувачі могли оновити свій код.

Постарайтеся уникати видалення функціональних можливостей, не надаючи альтернативи - це зробить деяких ваших користувачів нещасними.


Якщо це можливо у вашому веб-API, залишайте активними застарілі функції, але дозвольте їм повертати інформаційну помилку, а не просто ламати.
Запитуйте про Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.