Какой API-шлюз готов к производству и обеспечивает хорошую производительность и возможности?

У нас есть много служб REST в нашей инфраструктуре, и они построены с использованием различных технологий (Java, Go, Ruby, NodeJS), но все они имеют определенные общие требования, такие как аутентификация, авторизация, ограничение скорости, аналитика и т.д., поэтому мы думаем перед этим API есть API-шлюз, так что все общение происходит только через него. Я узнал о некоторых продуктах с открытым исходным кодом на рынке, таких как Strongloop/Loopback, WSO2, TYK, APIAXLE и 3scale но большинство из них не похоже на проверенные временем и готовые к использованию. Немногие вещи, которые приходят мне в голову сейчас:

  • Как обратная связь с пользователем после использования одного из этих решений?
  • Многим людям нужна такая функция, как они это делают? Я смотрю в правильном направлении?
  • Есть ли лучший способ решить мою проблему без использования API-шлюза?

Ответы

Ответ 1

Если я упоминаю о диспетчере API WSO2,

  • Как я знаю, многие люди используют его в производстве и дают хорошие отзывы об этом.

  • Да. вы можете использовать API Manager для ограничения скорости. API Manager имеет функцию, называемую уровнями дроссельной заслонки. вы можете использовать эту функцию для ограничения скорости. Для других функций, таких как аутентификация и авторизация, вы должны использовать API Manager с сервером идентификации WSO2. Для функции аналитики вам необходимо использовать API Manager WSO2 Business Activity Monitor. Интегрируя все эти продукты, вы можете достичь упомянутых функций.

Ответ 2

Я могу ответить за 3scale, так как я там работаю.

3scale - это полная платформа управления API, которая реализует авторизацию, ограничение скорости и аналитику для вашего API. Мы предлагаем различные варианты интеграции, наиболее популярным из которых является наш API-шлюз, который может быть размещен нами или развернут на месте.

Это шлюз на основе Nginx, который развертывается перед вашими серверами API и разрешает входящие вызовы, достигнув API 3scale. Шлюз извлекает ключ API входящего вызова и вызываемую конечную точку и проверяет, должен ли этот конкретный запрос быть авторизированным (то есть действительный ключ, использование в пределах, допустимая конечная точка и т.д.).

Одной из ключевых частей нашего шлюза API является то, что авторизация выполняется асинхронно, так что она не влияет на задержку, воспринимаемую пользователем API.

Относительно ваших конкретных вопросов:

  • У нас 600 клиентов, использующих 3scale в производстве. Это включает в себя API с очень большими объемами трафика, некоторые из которых вы можете видеть и читать здесь.

  • Я бы сказал, что основной выбор заключается в использовании платформы управления API или реализации этих функций самостоятельно. Преимущество использования чего-то типа 3scale заключается в том, что мы специализируемся именно на этой проблеме, и мы предоставляем другие очень полезные функции помимо основного разрешения и ограничения скорости: портал разработчиков, размещенный нами, где ваши пользователи API могут регистрировать и управлять своими ключами, биллинговой системой которые вы можете использовать, чтобы предлагать платные планы для вашего API, поддерживать расширенные шаблоны auth, такие как OAuth2, и другие, о которых вы можете прочитать на нашем веб-сайте.

  • Вы также можете интегрировать 3scale в свой API с одной из наших программных библиотек. Однако, поскольку у вас несколько API-интерфейсов, написанных на разных языках, я рекомендую использовать шлюз API, поскольку у вас будет только одна точка интеграции (поэтому ее проще поддерживать).

Как всегда лучше всего, если вы проверите его самостоятельно. У нас есть бесплатный план без ограничений по времени, поэтому вы можете начать там.