Zum Inhalt springen

ETag-Middleware ​

Mit dieser Middleware kannst du ETag-Header einfach hinzufügen.

Import ​

ts
import { Hono } from 'hono'
import { etag } from 'hono/etag'

Verwendung ​

ts
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:

ts
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.

Veröffentlicht unter der MIT-Lizenz.