2016-11-06 4 views
1

Unsere Anwendung ist auf einer API erste Architektur basiert und wird derzeit auf der Grundlage einer einzigen Domain/Service:API Design - Aufspaltung in verschiedene Sub-Domains (Mikro-Dienstleistungen)

api.todos.com

Verbraucher der API sind:

  • Unsere Web-Frontend
  • Unsere mobile-apps
  • Andere Unternehmen/öffentliche

Wir werden neue Micro-Services in verschiedenen Sprachen für die gleiche Anwendung geschrieben werden.

  • Statistiken
  • Blog/Content
  • RSS Feed
  • Suche

Meine Frage rund um beschäftigt sich mit Domains: Zum Beispiel könnten wir API-Services für die Entwicklung. Wäre es am besten, jeden Dienst in eine andere Subdomäne aufzuteilen, z.

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

Oder ist es besser, eine einzige, einheitliche API-Domäne zu haben, wo wir tun HTTP (Schicht 7) Routing zu Erreichen Sie unsere Endpunkte. z.B.

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

nicht sicher, welches für eine öffentliche API vorzuziehen ist? Es wäre einfacher, mehrere Subdomains zu haben und sich nicht mit einem dazwischenliegenden Routing-Layer/Proxy zu beschäftigen.

Antwort

0

Als Systemarchitekt denke ich it is better to have a single unified API domain where we do HTTP (layer 7) routing to reach our endpoints. Sie können Ihr System flexibler machen, ohne dass sich Änderungen für Ihre Kunden ergeben. Zum Beispiel haben Sie eine Micro mit Routen:

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

Künftig Sie die Micro durch diese Routen aufteilen.

Aber meistens hängt es davon ab, welche API Gateway Sie verwenden werden. API-Gateway ist ein einzelner Einstiegspunkt in Ihrem System, welche Proxy-Anfrage, um Microservice zu korrigieren. Auch es macht auth und Cache. Mehr über das Muster dieses Microservice können Sie lesen .

Verwandte Themen