برمجية وسيطة 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 خاص بها.