OpenAPI Schnittstelle - Mehrere Kunden mit unterschiedlichen Zugriffsrechten

Tarrew

Top Contributor
Hallo zusammen,

folgende Situation: Wir schreiben aktuell mehrere Microservices, die sowohl von externen Kunden als auch internen Fachabteilungen genutzt werden.
Gemäß "API-First" Ansatz, spezifizieren wir dafür zuerst die Schnittstelle im OpenAPI Format.
Idee dahinter ist, dass wir daraus unsere Controller und Interfaces generieren, die dann konform mit der Schnittstelle sind, und diverse Kunden sich die API-Clients ebenfalls generieren können, um weniger Programmieraufwand zu haben.

Jetzt ist es so, dass es verständlicherweise verschiedene Zugriffsrechte gibt, die natürlich auch geprüft werden (OpenID Connect).
Angenommen es gibt einen Endpunkt GET /items . Diesen dürfen sowohl die interne Fachabteilung (Admins) als auch externe Kunden aufrufen.
Der Endpunkt POST /items kann entsprechend nur von der internen Fachabteilung genutzt werden.

Jetzt stellt sich mir die Frage, wie man die verschiedenen Spezifikationen am besten verwaltet.

1. Möglichkeit: Alle Operationen in eine OpenAPI-Spec
Vorteil: Controller Generierung ist sehr leicht. Die generierten Controller enthalten alle benötigten Schnittstellen-Operationen.
Nachteil: Die OpenAPI-Spec wird auch an Endkunden verteilt. Diese können dann Operationen sehen, die Sie garnicht aufrufen dürfen. Finde ich irgendwie unschön.

2. Möglichkeit: Mehrere OpenAPI-Specs für Endkunden und interne Fachabteilungen.
Vorteil: Kundengruppe sieht in ihrer Spec nur die Schnittstellenoperationen, die Sie auch nutzen können.
1. Problem: In welche der beiden Specs kommen Endpunkte, die von beiden Kundengruppen genutzt werden? Ggf. Doppelpflege vorhanden.
2. Problem: Was passiert mit der OpenAPI Generierung, wenn der gleiche Controller von zwei OpenAPI Specs generiert wird. Vermutlich wird der eine überschrieben und man kann nicht beide Specs "mergen".

3. Möglichkeit: 2 verschiedene Schnittstellen mit unterschiedlichen Requestmappings.
Vorteil: Vermutlich keine Probleme mit der Generierung aufgrund getrennter Controller.
Nachteil: 1. Problem aus (2) bleibt. In welche Spec kommen Operationen, die allgemeingültig sind. Ggf. hat man gleiche Operationen unter verschiedenen Endpunkten und wieder Doppelpflege.

4. Möglichkeit: ???

Habt ihr ähnliche Fälle oder Ideen, wie man so etwas vernünftig lösen kann?

VG
 

mrBrown

Super-Moderator
Mitarbeiter
Mir würden zwei Möglichkeiten einfallen:

  • alles in einer Spezifikation und nutzen von Tags. Aus der großen Spezifikation kann man sich dann anhand der Tags die spezifischen Spezifikationen generieren. Ob’s da Tools für gibt weiß ich nicht, kann man sich aber sonst wahrscheinlich selbst bauen.
  • alles in einzelnen, kleinen Spezifikationen, und für jeden Mandanten werden alle kleinen, die für ihn relevant sind, zu einer großen gemerged.

Welches davon einfacher umsetzbar und/oder am praktikabelsten ist, muss man wahrscheinlich einmal an einem Prototypen ausprobieren.
 

Tarrew

Top Contributor
Mir würden zwei Möglichkeiten einfallen:

  • alles in einer Spezifikation und nutzen von Tags. Aus der großen Spezifikation kann man sich dann anhand der Tags die spezifischen Spezifikationen generieren. Ob’s da Tools für gibt weiß ich nicht, kann man sich aber sonst wahrscheinlich selbst bauen.
  • alles in einzelnen, kleinen Spezifikationen, und für jeden Mandanten werden alle kleinen, die für ihn relevant sind, zu einer großen gemerged.

Welches davon einfacher umsetzbar und/oder am praktikabelsten ist, muss man wahrscheinlich einmal an einem Prototypen ausprobieren.
Danke dir für die Ideen, ich werde mal probieren, beides auszutesten :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
B Schnittstelle zwischen MySQL und Apache Allgemeine Java-Themen 8
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
Meeresgott Best Practice Mini REST-Schnittstelle Allgemeine Java-Themen 4
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
stroggi Serielle Schnittstelle (jssc) - Flush benötigt? Allgemeine Java-Themen 2
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
T Input und Outputstream , serielle Schnittstelle Allgemeine Java-Themen 1
M Schnittstelle Datanorm Allgemeine Java-Themen 2
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
I Java - perfekte Schnittstelle für Hacker? Allgemeine Java-Themen 8
M Java-Pawn Schnittstelle ? Allgemeine Java-Themen 0
S Threads Serielle Schnittstelle mit Listener / Aufrufendes GUI Allgemeine Java-Themen 4
L COM Schnittstelle in Java programmieren Allgemeine Java-Themen 4
T Schnittstelle zu Bash?! Allgemeine Java-Themen 2
D Aufgabe: Schnittstelle und Proxy implementieren Allgemeine Java-Themen 2
H Interface Generische Schnittstelle (rekusiv) Allgemeine Java-Themen 2
M Serielle Schnittstelle ansteuern - mit Processing Bibliothek Allgemeine Java-Themen 4
B Schnittstelle von Facebook zu Java(Eclipse) für meine Internetseite Allgemeine Java-Themen 20
U Realisierung einer "Plugin-Schnittstelle": Allgemeine Java-Themen 12
I Serielle Schnittstelle Allgemeine Java-Themen 5
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
M Schnittstelle für durchgereichte Interaktionen in Komponentenhierarchie? Allgemeine Java-Themen 3
P Auslesen serieller Schnittstelle - umwandeln von byteArray Allgemeine Java-Themen 3
N Serielle Schnittstelle / COM-Port auslesen und die empfangenen Daten verarbeiten Allgemeine Java-Themen 1
O Zugriff auf Serielle Schnittstelle - Keine Ports gefunden. Allgemeine Java-Themen 8
S Problem mit serieller Schnittstelle Allgemeine Java-Themen 10
M Zugriff auf Parallel-Schnittstelle Allgemeine Java-Themen 2
P Schnittstelle über Webservice SOAP Allgemeine Java-Themen 11
MQue Schnittstelle programmieren Allgemeine Java-Themen 2
H lpt1 schnittstelle Allgemeine Java-Themen 6
M Schnittstelle java.util.Set Allgemeine Java-Themen 9
G Kommunikation mit der seriellen Schnittstelle Allgemeine Java-Themen 6
G serielle Schnittstelle einlesen Allgemeine Java-Themen 13
M Paralle Schnittstelle ansprechen Allgemeine Java-Themen 2
P TCPIP Schnittstelle Allgemeine Java-Themen 2
D Datenübertragung über serielle Schnittstelle Allgemeine Java-Themen 4
D Daten aus einer Seriellen Schnittstelle empfangen Allgemeine Java-Themen 22
G Problemme mit serielle Schnittstelle Allgemeine Java-Themen 9
MQue serielle Schnittstelle Allgemeine Java-Themen 2
E serielle Schnittstelle Allgemeine Java-Themen 6
N Serielle Schnittstelle ansprechen Allgemeine Java-Themen 9
D HTML Schnittstelle Allgemeine Java-Themen 4
J serielle Schnittstelle unter Linux Allgemeine Java-Themen 3
T parallele Schnittstelle auslesen Allgemeine Java-Themen 5
S Problem mit Ansteuerung von serieller Schnittstelle Allgemeine Java-Themen 7
Q Schnittstelle/Abstrakte Klasse schreibt Annotation vor? Allgemeine Java-Themen 4
W Zugriff auf lokale serielle Schnittstelle via Applet Allgemeine Java-Themen 3
T Java Schnittstelle Active Directory Allgemeine Java-Themen 5
Q Typecast zwischen Klassen mit implementierter Schnittstelle Allgemeine Java-Themen 4
M RS232 Schnittstelle ansteuern (Floppy durch Laptop ersetzen) Allgemeine Java-Themen 2
Z java->schnittstelle->excel Allgemeine Java-Themen 2
V gezielte Datenbankeinträge über JDBC schnittstelle Allgemeine Java-Themen 10
A Serielle Schnittstelle | Barcodescan | ohne Tastatur Allgemeine Java-Themen 11
H javax.comm und Parallele Schnittstelle (PIN für PIN) Allgemeine Java-Themen 7
X Java Schnittstelle zu AIML Allgemeine Java-Themen 2
S String an COM-Schnittstelle senden Allgemeine Java-Themen 6
D Schnittstelle zwischen zwei Klassen? Allgemeine Java-Themen 2
J PS/2-Schnittstelle ansprechen Allgemeine Java-Themen 7
Y Zugriff auf Com-Schnittstelle Allgemeine Java-Themen 5
S Abhören der com-Schnittstelle Allgemeine Java-Themen 3
H Zugriff auf parallele Schnittstelle Allgemeine Java-Themen 4
G Zugriff auf serielle Schnittstelle mit Java 1.5.0 Allgemeine Java-Themen 11
C Implementieren einer Schnittstelle (Interface), Ausnahmen Allgemeine Java-Themen 7
J serielle schnittstelle unter linux Allgemeine Java-Themen 3
I Mehrere Klassen mit den selben Daten Allgemeine Java-Themen 5
berserkerdq2 Ist es schlechter Programmierstyle mehrere Panes aufeinander zu machen? Allgemeine Java-Themen 1
A Mehrere for-Schleifen Allgemeine Java-Themen 2
M Mehrere Sounds Allgemeine Java-Themen 3
M Mehrere Ressourcen in einem package ablegen Allgemeine Java-Themen 1
Avalon DTO aus mehrere Entitäten erstellen Allgemeine Java-Themen 5
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9
H Mehrere Datentypen in einer Arraylist speichern Allgemeine Java-Themen 9
Curtis_MC Collections Liste anhand mehrere Kriterien sortieren Allgemeine Java-Themen 6
bueseb84 Git : Mehrere Server verwenden Allgemeine Java-Themen 3
L Mehrere .Jar Files aufrufen Allgemeine Java-Themen 9
L mehrere Methoden Allgemeine Java-Themen 19
W Variablenübergabe über mehrere Klassen Allgemeine Java-Themen 4
B StAX Parser - mehrere Methoden, ein XML Allgemeine Java-Themen 4
T String mehrere Worte Allgemeine Java-Themen 2
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
S libGDX mehrere Texturen zu Einer zusammenfassen Allgemeine Java-Themen 0
X Mehrere booleans in Datei Speichern, Updaten und Laden Allgemeine Java-Themen 1
OnDemand CSV parsen mehrere Zeilen Allgemeine Java-Themen 22
K Mehrere Programmiersprachen gleichzeitig lernen Allgemeine Java-Themen 3
C Mehrere Seiten drucken in Hoch- und Querformat Allgemeine Java-Themen 0
perlenfischer1984 Mehrere Komponenten erstellen Allgemeine Java-Themen 3
F AWT Mehrere Tastatureingaben verarbeiten Allgemeine Java-Themen 5
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
HarleyDavidson Best Practice Integer-Zahlenfolge über mehrere Programmstarts Allgemeine Java-Themen 7
F Mehrere JTables' drucken Allgemeine Java-Themen 0
2 mehrere Json Werte Parsen Allgemeine Java-Themen 3
stylegangsta Mehrere html seiten einer Homepage einlesen und als Textdatei ausgeben Allgemeine Java-Themen 14
P Mehrere Java Versionen auf dem Rechner Allgemeine Java-Themen 3
B JAVA - mehrere Clienten gleichzeitig starten. Nicht bei Code! Allgemeine Java-Themen 3

Ähnliche Java Themen


Oben