Ein offenes Rahmen zum Zusammenstellen von Ultra Performance API -Gateways mit Middlewares; Früher als Krakend Framework bekannt und Kerndienst des Krakend API -Gateways.
Verbraucher von REST -API -Inhalten (insbesondere in Microservices) stellen häufig Backend -Dienste ab, die nicht für die UI -Implementierung codiert wurden. Dies ist natürlich eine gute Praxis, aber die UI -Verbraucher müssen Implementierungen durchführen, die viel Komplexität und Belastung mit den Größen ihrer Microservices -Antworten erleiden.
Lura ist ein API -Gateway -Bauunternehmer und Proxy -Generator, der zwischen dem Client und allen Quellservern sitzt, und fügt den Kunden eine neue Ebene hinzu, die die gesamte Komplexität beseitigt und ihnen nur die Informationen zur Verfügung stellt, die die Benutzeroberfläche benötigt. Lura fungiert als Aggregator vieler Quellen in einzelne Endpunkte und ermöglicht es Ihnen, die Antworten zu gruppieren, zu wickeln, zu verwandeln und zu schrumpfen. Darüber hinaus unterstützt es eine Vielzahl von Middlewares und Plugins, mit denen Sie die Funktionalität erweitern können, z. B. das Hinzufügen von OAuth -Autorisierung oder Sicherheitslagen.
Lura unterstützt nicht nur HTTP (s), sondern weil es sich um eine Reihe von generischen Bibliotheken handelt, können Sie alle Arten von API -Gateways und Proxys erstellen, einschließlich eines RPC -Gateways.
Ein mobiler Entwickler muss eine einzelne Titelseite erstellen, für die Daten von 4 verschiedenen Anrufen zu seinen Backend -Diensten erforderlich sind, z. B. Daten:
1) api.store.server/products 2) api.store.server/marketing-promos 3) api.users.server/users/{id_user} 4) api.users.server/shopping-cart/{id_user}
Der Bildschirm ist sehr einfach und der mobile Client muss nur Daten aus 4 verschiedenen Quellen abrufen, auf die Roundreise warten und dann nur wenige Felder aus der Antwort auswählen.
Was wäre, wenn das Handy einen einzigen Endpunkt nennen könnte?
1) lura.server/frontpage/{id_user}
Das kann Lura für Sie tun. Und so würde es aussehen:
Lura würde alle Daten zusammenführen und nur die benötigten Felder zurückgeben (die Größe der Größe im Diagramm).
Besuchen Sie die Lura Project -Website für weitere Informationen.
Der Quellcode für das Lura Project Framework. Es ist so konzipiert, dass es mit Ihrer eigenen Middleware arbeitet und die Funktionalität erweitert, indem kleine, unabhängige und wiederverwendbare Komponenten nach der UNIX -Philosophie verwendet werden.
Verwenden Sie dieses Repository, wenn Sie aus Quelle Ihr API -Gateway erstellen möchten oder wenn Sie die Komponenten in einer anderen Anwendung wiederverwenden möchten.
Wenn Sie ein voll funktionsfähiges API -Gateway benötigen, können Sie die Krakend -Binärdauer für Ihre Architektur herunterladen oder selbst bauen.
Das Lura -Projekt wird als GO -Bibliothek präsentiert, die Sie in Ihre eigene GO -Anwendung aufnehmen können, um einen leistungsstarken Proxy- oder API -Gateway zu erstellen. Für ein vollständiges Beispiel finden Sie das Krakend CE -Repository.
Natürlich müssen Sie in Ihrem System eine Installation benötigen, um den Code zu kompilieren.
Ein Beispiel für die Verwendung von Beispiel:
Paket Mainimport ("Flag" "log" "os" "github.com/luraproject/lura/config" "github.com/luraproject/lura/logging" "github.com/luraproject/lura/proxy" Github.com/ luraproject/lura/router/gin ") func main () {port: = flag.int (" p ", 0," port of the Service ") Loglevel: = Flag.String (" L "," Fehler "," Protokollierungsstufe ") Debug: = Flag.bool (" D ", False," the debug ") configfile: = flag.string (" C "," /etc/lura/configuration.json "," Pfad zum Konfigurationsfilename ") Flag.Parse () Parser: = config.newparser () serviceConfig, err: = parser.parse (*configfile) if err! } serviceConfig.debug = serviceConfig.debug || *debugif *port! , Logger) RouterFactory.new (). Run (serviceConfig) }
Besuchen Sie den Framework -Überblick für weitere Informationen zu den Komponenten des Lura -Projekts.
Lura -Konfigurationsdatei
Schauen Sie sich die Benchmark -Ergebnisse mehrerer Lura -Komponenten an
Wir freuen uns immer, Beiträge zu erhalten. Wenn Sie Fragen, Vorschläge und Fehler haben, öffnen Sie bitte ein Problem. Wenn Sie den Code einreichen möchten, erstellen Sie das Problem und senden Sie uns eine Pull -Anfrage zur Überprüfung.
Weitere Informationen lesen.
Folgen Sie uns auf Twitter: @luraproject
Besuchen Sie unseren Slack -Kanal
Lesen Sie die Dokumentation
Genieße Lura!