Meine Frage bezieht sich auf bewährte Methoden zum Aggregieren oder Gruppieren von REST-APIs. Ich habe ein Szenario, in dem es viele verschiedene Anbieter, Datenquellen usw. gibt, und ich denke, dass das Gruppieren von REST-APIs sehr sinnvoll wäre, um das System wartbar zu halten.
Ich habe viele Szenarien, in denen ein einzelner API-Aufruf viele andere (ähnliche) API-Aufrufe auslöst, um dieselbe Entität in einem anderen System zu erstellen . Zum Beispiel für eine Beispielentität "Benutzer" :
- Front-End-Aufrufe REST-API: PUT ... / user
- Was ich mir vorstelle, ist, dass der Code, der die obige API abhört, dann mehrere REST-PUT-Aufrufe ausführt, beispielsweise VendorA / Benutzer, VendorB / Benutzer, VendorC / Benutzer, InternalSystemA / Benutzer, InternalSystemB / Benutzer usw.
So was:
+-------------------+
+--------+ PUT +-----------+ CALL | Vendor A API |
| | +-------> | user +--------> | |
| | | +-----------+ +-------------------+
| | |
| Front | PUT +--------++ PUT +-----------+ INSERT +-------------------+
| End +------> | user +------> | user +--------> | Internal System |
| | +--------++ +-----------+ +-------------------+
| | |
| | | +-----------+ CALL +-------------------+
| | +-------> | user +--------> | Vendor B API |
+--------+ PUT +-----------+ | |
+-------------------+
+ +
+---------------------------------+
Internal REST APIs
Beachten Sie, dass die Beispielentität nicht "Benutzer" sein muss. Es gibt viele Entitäten, die ein Gegenstück zu den Hersteller-APIs haben.
Die Anbieter in diesem Szenario bieten unterschiedliche Funktionen. Es kann jedoch mehrere Anbieter geben, die dieselbe Funktionalität bereitstellen (und der Benutzer wählt den Anbieter aus, den er verwenden möchte). Nehmen wir zur Vereinfachung an, es handelt sich um Beispielfunktionalitäten
- Beschaffung,
- Humanressourcen,
- Verwaltung,
- Zahlung.
Was ist die beste Vorgehensweise, um REST-APIs in einem solchen Szenario zu gruppieren und zu verschachteln? Ist es eine gute Idee, sie nach Lieferanten zu gruppieren, oder sollten sie funktional oder nach Geschäftseinheiten gruppiert werden? Wie würde die URL aussehen?