Чи повинен веб-сайт використовувати власний публічний API?


31

Я починаю писати веб-сервіс, і я створив за допомогою nodeJS та RESTfulish підхід.

З того, що я збираю:

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

Що вважається найкращою практикою? Чи користуються такими сайтами, як Stack Exchange, Github, Twitter тощо, власні API для своїх клієнтів?

api 

12
Їжа власних собак також сприятиме покращенню вашого громадського API
Бен Брокка

Ось як це робить Амазонка.
OliverS

2
Щоб додати пункт OlverS, перегляньте платформу Google Rant
Brian

Відповіді:


37

Ви повинні абсолютно використовувати свій власний API. Ця концепція широко відома як dogfooding, і вона має багато переваг, крім уникнення дублювання коду.

  • Послідовна поведінка між вашим сайтом / продуктом та тим, що пишуть споживачі API (тобто їх очікування від API)
  • Ще одна форма тестування.
  • Ви можете і знайдете помилки в API, перш ніж ваші клієнти роблять їх рішення, тим дешевше.

Хоча я б заперечував проти одного з ваших моментів: вам не слід часто оновлювати API. Витратьте час на створення архітектора та підтвердження API, який залишиться на деякий час. На щастя, собачі обриси таким чином накладуть це на виконання. Там, де ви раніше лише зламали код клієнта, тепер ви будете порушувати власний код. Коли потрібно , так, версія для версій - це рішення, але цього слід уникати.


0

чомусь це не дозволить мені увійти як плакат питання, але це був я. Я не можу прийняти вашу відповідь, хоч би могла, це має багато сенсу.

Однак як не можна оновити API? Що з додаванням нових функцій, видаленням непопулярних, рефакторингу тощо?


Гей. Це має бути коментарем до його відповіді - але я не думаю, що у вас є достатньо респондентів для коментарів. У будь-якому разі, справа в тому, що вам не слід часто оновлювати API . І навіть тоді додавання нових функцій не є проблемою - воно не може зламати існуючий код. Навіщо видаляти непопулярні? Зробіть їх застарілими та видаліть колись у майбутньому після того, як люди встигли відповісти на депресію.
Макс

2
Додавання методів до API - це нормально, змінити існуючий API погано, оскільки він порушить будь-який код, який залежить від API.
Брайан Оуклі

@ stanm87: Макс і Брайан це добре сказали. Вам слід уникати зміни контракту свого API (тобто інтерфейсу та очікуваної роботи, поведінки). Люди будуть залежати від того, якщо вони використовуватимуть ваш API і якщо ви його зміните, він порушить їх код.
Стівен Еверс

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