ETag-Middleware
Mit dieser Middleware kannst du ETag-Header einfach hinzufügen.
Import
import { Hono } from 'hono'
import { etag } from 'hono/etag'Verwendung
const app = new Hono()
app.use('/etag/*', etag())
app.get('/etag/abc', (c) => {
return c.text('Hono is cool')
})Beibehaltene Header
Eine 304-Antwort muss die Header enthalten, die in einer entsprechenden 200-OK-Antwort gesendet worden wären. Die Standard-Header sind Cache-Control, Content-Location, Date, ETag, Expires und Vary.
Wenn du weitere gesendete Header hinzufügen möchtest, kannst du die Option retainedHeaders und die Zeichenfolgen-Array-Variable RETAINED_304_HEADERS verwenden, die die Standard-Header enthält:
import { etag, RETAINED_304_HEADERS } from 'hono/etag'
// ...
app.use(
'/etag/*',
etag({
retainedHeaders: ['x-message', ...RETAINED_304_HEADERS],
})
)Optionen
optional weak: boolean
Legt fest, ob eine schwache Validierung verwendet wird. Bei true wird dem Wert das Präfix w/ vorangestellt. Der Standardwert ist false.
optional retainedHeaders: string[]
Die Header, die du in der 304-Antwort beibehalten möchtest.
optional generateDigest: (body: Uint8Array) => ArrayBuffer | Promise<ArrayBuffer>
Eine benutzerdefinierte Funktion zur Erzeugung eines Digests. Standardmäßig wird SHA-1 verwendet. Die Funktion erhält den Antwort-Body als Uint8Array und sollte den Hash als ArrayBuffer oder als Promise dafür zurückgeben.