ETag ミドルウェア
このミドルウェアで ETag ヘッダーを簡単に追加できます。
インポート
ts
import { Hono } from 'hono'
import { etag } from 'hono/etag'使い方
ts
const app = new Hono()
app.use('/etag/*', etag())
app.get('/etag/abc', (c) => {
return c.text('Hono is cool')
})保持するヘッダー
304 レスポンスには、同等の 200 OK レスポンスで送信されるヘッダーを含める必要があります。デフォルトでは Cache-Control、Content-Location、Date、ETag、Expires、Vary を保持します。
送信するヘッダーを追加するには、retainedHeaders オプションと、デフォルトのヘッダーを含む文字列配列変数 RETAINED_304_HEADERS を使用できます。
ts
import { etag, RETAINED_304_HEADERS } from 'hono/etag'
// ...
app.use(
'/etag/*',
etag({
retainedHeaders: ['x-message', ...RETAINED_304_HEADERS],
})
)オプション
optional weak: boolean
弱い検証を使うか指定します。true なら値の先頭に w/ を付けます。デフォルトは false です。
optional retainedHeaders: string[]
304 レスポンスに保持するヘッダー。
optional generateDigest: (body: Uint8Array) => ArrayBuffer | Promise<ArrayBuffer>
カスタムのダイジェスト生成関数です。デフォルトは SHA-1 です。レスポンスボディを Uint8Array として受け取り、ハッシュを ArrayBuffer またはその Promise として返す必要があります。