Cache
Middleware, das Caching-Funktionalität bereitstellt.
Das Cache-Middleware kann den StatusCode, die Headers und den Body einer Response zwischenspeichern. Für bereits zwischengespeicherte Inhalte sendet das Cache-Middleware bei der Verarbeitung nachfolgender Anfragen den gepufferten Inhalt direkt aus dem Speicher an den Client.
Hinweis: Dieses Plugin speichert keine Response-Objekte, deren Body ResBody::Stream ist. Wenn es auf eine solche Response angewendet wird, verarbeitet Cache diese Anfragen nicht und es tritt kein Fehler auf.
Hauptfunktionen
-
CacheIssuerbietet eine Abstraktion zur Erzeugung von Cache-Schlüsseln.RequestIssuerist eine seiner Implementierungen, mit der Sie definieren können, welche Teile der Anfrage-URL und der Anfrage-Methodzur Erzeugung des Cache-Schlüssels verwendet werden sollen. Sie können auch Ihre eigene Logik zur Erzeugung von Cache-Schlüsseln definieren. Der Cache-Schlüssel muss nicht unbedingt eine Zeichenkette sein; jeder Typ, der die EinschränkungenHash + Eq + Send + Sync + 'staticerfüllt, kann als Schlüssel verwendet werden. -
CacheStorebietet Operationen zum Speichern und Abrufen von Daten.MokaStoreist eine eingebaute, speicherbasierte Cache-Implementierung auf Basis vonmoka. Sie können auch Ihre eigene Implementierung definieren. -
Cacheist eine Struktur, dieHandlerimplementiert. Sie enthält auch ein internesskipper-Feld, mit dem Anfragen angegeben werden können, die das Caching überspringen sollen. Standardmäßig wirdMethodSkipperverwendet, um alle Anfragen außer denen mitMethod::GETzu überspringen.Beispiel für internen Implementierungscode:
Schnelle Migration von anderen Frameworks
Wenn Sie Caching-Mechanismen in anderen Frameworks verwendet haben, helfen Ihnen die folgenden konzeptionellen Zuordnungen, sich schneller an die Cache-Implementierung von Salvo anzupassen:
Migrationsleitfaden für Rust-Frameworks
-
Migration von Actix-web: Plugins wie
actix-web-cachein Actix-web müssen in der Regel separat eingeführt werden, während Caching in Salvo Teil der Kernbibliothek ist.
Migrationsleitfaden für Frameworks in anderen Sprachen
-
Migration von Go/Gin: Gin verwendet ein Middleware-Muster, das Salvo auf ähnliche Weise übernimmt:
-
Migration von Spring Boot: Das deklarative Caching von Spring Boot muss in die explizite Middleware-Konfiguration von Salvo umgewandelt werden:
-
Migration von Express.js: Das Caching-Middleware von Express.js ist konzeptionell ähnlich wie das von Salvo, aber die Syntax unterscheidet sich:
Bei der Migration von anderen Frameworks sollten Sie auf mehrere Schlüsselkonzepte des Caching in Salvo achten:
- Cache-Schlüsselgenerierung - Gesteuert über die
CacheIssuer-Schnittstelle. - Cache-Speicher - Implementiert über die
CacheStore-Schnittstelle. - Logik zum Überspringen des Caches - Angepasst über den
skipper-Mechanismus.
Standardmäßig speichert Salvo nur GET-Anfragen zwischen, was mit dem Standardverhalten der meisten Frameworks übereinstimmt.
Beispielcode