Middleware ETag
Ce middleware permet d’ajouter facilement des en-têtes ETag.
Importation
import { Hono } from 'hono'
import { etag } from 'hono/etag'Utilisation
const app = new Hono()
app.use('/etag/*', etag())
app.get('/etag/abc', (c) => {
return c.text('Hono is cool')
})En-têtes conservés
La réponse 304 doit inclure les en-têtes qui auraient été envoyés dans une réponse 200 OK équivalente. Les en-têtes par défaut sont Cache-Control, Content-Location, Date, ETag, Expires et Vary.
Pour ajouter un en-tête à conserver, utilisez l’option retainedHeaders et la variable RETAINED_304_HEADERS, un tableau de chaînes contenant les en-têtes par défaut :
import { etag, RETAINED_304_HEADERS } from 'hono/etag'
// ...
app.use(
'/etag/*',
etag({
retainedHeaders: ['x-message', ...RETAINED_304_HEADERS],
})
)Options
facultatif weak: boolean
Indique s’il faut utiliser une validation faible. Si l’option est définie sur true, le préfixe w/ est ajouté à la valeur. La valeur par défaut est false.
facultatif retainedHeaders: string[]
Les en-têtes à conserver dans la réponse 304.
facultatif generateDigest: (body: Uint8Array) => ArrayBuffer | Promise<ArrayBuffer>
Une fonction personnalisée de génération d’empreinte. Par défaut, elle utilise SHA-1. Cette fonction reçoit le corps de la réponse sous forme de Uint8Array et doit renvoyer une empreinte sous forme d’ArrayBuffer ou d’une Promise résolvant un tel objet.