В общих чертах API (интерфейс прикладного программирования) — это модуль кода, который выполняет конкретную задачу и определяет набор протоколов, которые могут использоваться другими для выполнения этой задачи. Однако в современном мире API стали больше, чем просто инструментами: сейчас существует огромная и растущая экономика для кода, который можно легко добавить в приложение для выполнения отдельной задачи. Эффективная стратегия управления API расширяет возможности разработчиков, повышает качество программного обеспечения, снижает затраты на разработку, обеспечивает масштабируемость системы и усиливает меры безопасности.
Если ваша организация управляет API и рассматривает возможность сделать этот API общедоступным либо в качестве стратегии монетизации, либо в качестве стратегии повышения узнаваемости бренда, очень важно обеспечить хорошее управление API. Пользователи за пределами вашей организации ожидают хорошего опыта, и вы должны быть готовы предоставить этот опыт через свой API.
Именно здесь в игру вступает надежная стратегия управления API . Составление эффективного плана стратегии управления API состоит из трех основных компонентов: определение областей эффективного управления API, принятие решения о том, нужен ли вам инструмент управления API и какой тип инструмента вам следует использовать, и выбор этого инструмента.
Эффективное управление API предполагает контроль за всеми аспектами API, которые будут использовать ваше предприятие или внешние пользователи. Сюда входят производительность, безопасность, авторизация, документация, анализ и доступность.
Шлюз/доступ. Шлюз API — это уровень между общедоступными и вашими серверными службами. Здесь входящие запросы будут перехватываться и направляться в правильные части вашего API. Вам следует использовать кеширование, ограничение скорости и регулирование, а также группировку ответов, чтобы обеспечить скорость и согласованность для ваших пользователей.
Цели производительности Доступность, скорость и надежность — важнейшие аспекты любого общедоступного API. Вы должны быть в состоянии гарантировать определенное время безотказной работы для своих пользователей и быть в состоянии защитить и восстановить пользовательские данные в случае сбоя или простоя. Определите цели вашего API.
Безопасность/типы авторизации Безопасность важна не только для защиты вашего сервера, но и для защиты конфиденциальных данных клиента. Ваша стратегия API должна включать стратегию, защищенную ключом API, сертификатом клиента или стратегией OAuth. Даже если ваш API предоставляет данные, которые не являются конфиденциальными, сетевые запросы, которые он обрабатывает, все равно должны быть защищены.
Аутентификация/управление политиками После авторизации аутентификация и управление политиками важны для определения ролей пользователей и группового доступа, а также для управления удостоверениями и привилегиями. Это повышает безопасность, ограничивая ресурсы, доступные тем или иным пользователям, и улучшает организацию ваших пользователей.
Портал разработчиков/документация Интуитивно понятный портал разработчиков и хорошая документация также имеют решающее значение для хорошего управления API. Ваш портал разработчика должен включать в себя песочницу, где разработчики могут тестировать ваши конечные точки, каталог API с описанием всех доступных API в вашей организации, а также понятную документацию с возможностью поиска с руководствами по началу работы и выполнению типичных задач.
Аналитика Ваша аналитика даст вам ценную информацию о том, как люди используют ваш API, что позволит вам сосредоточить ресурсы на тех областях, которые будут наиболее прибыльными. Кроме того, аналитика часто полезна для ваших пользователей.
Решения для управления API могут решить за вас одну или несколько из этих задач. Решения предоставляются через прокси, агентов или гибридные подходы.
Прокси. Прокси-решение находится между API и его пользователями. Прокси-серверы предлагают такие преимущества, как кэширование для оптимизации производительности и защиты API от внезапных скачков трафика. Однако использование прокси-сервера потенциально может привести к увеличению затрат и проблем, связанных с конфиденциальностью и задержками. Примеры таких реализаций прокси включают Apigee, Mashape и Mashery.
Агенты Агенты — это плагины, которые бесперебойно работают вместе с вашим сервером. В отличие от прокси, они не мешают вызовам API. Следовательно, они не вызывают сетевых задержек или внешних зависимостей. Однако реализация таких функций, как кэширование, может оказаться сложной задачей. Примером такого типа реализации является 3scale.
Гибрид. Чтобы получить преимущества от обеих реализаций, вы можете использовать агент и прокси-сервер в сочетании. Например, вы можете выбрать прокси-сервер для кэширования при использовании агента в целях аутентификации. Такие компании, как Apigee и 3scale, переходят на гибридные решения.
Некоторые из лучших инструментов управления API включают следующее:
Чтобы определить, какое решение вам подходит, потребуется оценка вашего бюджета, существующих ресурсов (т. е. людей, которые у вас есть в штате для работы над этим), ваших потребностей и ожидаемого масштаба вашего API.
Могу ли я управлять своими API самостоятельно или мне следует нанять внешнюю помощь?
Это полностью зависит от вас. Если у вас достаточно большая организация, чтобы выделить команду для управления API, возможно, вы сможете справиться с этим самостоятельно. Но управление API — сложная и специализированная задача, и ее не следует просто перекладывать на уже перегруженных работой инженеров в других подразделениях вашей компании.