2016-11-06 3 views
1

Нашего приложение основаны на API первой архитектуру и в настоящее время на основе одного домена/службе:API - разделение на различные поддомены (микро-услуги)

api.todos.com

потребители АФИ являются:

  • Наш веб-интерфейс
  • Наши мобильные приложения-
  • Прочие/общественные

Мы будем строить новые микро-услуги, написанные на разных языках для одного и того же приложения. Например, мы могли бы развивать услуги API для:

  • Статистика
  • Блог/Материалы
  • RSS поток
  • Поиск

Мой вопрос вокруг работы с доменами. Было бы лучше разделить каждую службу на другой подобласт, например.

  • api.todos.com
  • stats.todos.com
  • content.todos.com
  • rss.todos.com
  • search.todos.com

Или лучше иметь один домен унифицированный API, где мы делаем HTTP (слой 7) маршрутизации достичь наших конечных точек. например

  • api.todos.com/todos
  • api.todos.com/stats
  • api.todos.com/content
  • api.todos.com/rss
  • api.todos.com/search

Не уверен, что является предпочтительным для публичного API? Было бы проще иметь несколько поддоменов и не иметь дело с промежуточным уровнем маршрутизации/прокси.

ответ

0

Как системный архитектор Я думаю it is better to have a single unified API domain where we do HTTP (layer 7) routing to reach our endpoints. Вы можете сделать свою систему более гибкой, без каких-либо изменений для ваших клиентов. Например у вас есть microservice с маршрутами:

  • api.todos.com/route1
  • api.todos.com/route2

В будущем вы можете расколоть microservice по этим маршрутам.

Но в основном это зависит от того, какой API Gateway вы будете использовать. Шлюз API - это одна точка входа в систему, какой прокси-запрос исправляет микросервис. Также он делает аутентификацию и кеш. Подробнее об этом шаблоне микросервиса вы можете прочитать here.

 Смежные вопросы

  • Нет связанных вопросов^_^