Hono — إطار العمل للويب على معايير الويب › الوسائط المدمجة 3 / 8 السابق التالي

برمجية وسيطة ETag

باستخدام هذه الوسيطة (middleware)، يمكنك إضافة ترويسات ETag بسهولة.

Import

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

الاستخدام

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.

إذا أردت إضافة الترويسة (header) التي تُرسَل، يمكنك استخدام retainedHeaders الخيار و RETAINED_304_HEADERS متغيّر مصفوفة النصوص الذي يتضمن الترويسات (headers) الافتراضية:

import { etag, RETAINED_304_HEADERS } from 'hono/etag'

// ...

app.use(
  '/etag/*',
  etag({
    retainedHeaders: ['x-message', ...RETAINED_304_HEADERS],
  })
)

الخيارات

weak: boolean

حدّد باستخدام أو دون استخدام تحقق ضعيف. إذا true مُضبط، فإن w/ يُضاف إلى بادئة القيمة. الافتراضي هو false.

retainedHeaders: string[]

الترويسات (headers) التي تريد الاحتفاظ بها في استجابة 304.

generateDigest: (body: Uint8Array) => ArrayBuffer | Promise<ArrayBuffer>

دالة مخصّصة لتوليد البصمة (digest). افتراضياً، تستخدم SHA-1. تُستدعى هذه الدالة مع جسم الاستجابة (response body) كـ Uint8Array ويجب أن تُعيد قيمة تجزئة (hash) كـ ArrayBuffer أو Promise خاص بها.