CBOR
CBOR ist ein in RFC 8949 definiertes Binärformat zur Serialisierung von Objekten. Es ist mit JSON kompatibel und eignet sich sowohl für Netzwerkkommunikation, die einen effizienten Datenaustausch erfordert, als auch für Umgebungen mit begrenzten Ressourcen wie IoT-Geräte.
Hier ist ein Beispiel, das mit dem Paket cbor2 eine Antwort im CBOR-Format zurückgibt:
ts
import { Hono } from 'hono'
import { createMiddleware } from 'hono/factory'
import { encode } from 'cbor2'
const app = new Hono()
declare module 'hono' {
interface ContextRenderer {
(content: any): Response | Promise<Response>
}
}
const cborRenderer = createMiddleware(async (c, next) => {
c.header('Content-Type', 'application/cbor')
c.setRenderer((content) => {
return c.body(encode(content))
})
await next()
})
app.use(cborRenderer)
app.get('/', (c) => {
return c.render({ message: 'hello CBOR!' })
})
export default appDu kannst die Antwort mit folgendem Befehl prüfen.
plaintext
$ curl -s http://localhost:3000/ | hexdump -C
00000000 a1 67 6d 65 73 73 61 67 65 6b 68 65 6c 6c 6f 20 |.gmessagekhello |
00000010 43 42 4f 52 21 |CBOR!|
00000015Außerdem kannst du im CBOR-Playground überprüfen, ob sie sich in ein JSON-Objekt dekodieren lässt.
plaintext
A1 # map(1)
67 # text(7)
6D657373616765 # "message"
6B # text(11)
68656C6C6F2043424F5221 # "hello CBOR!"json
{ "message": "hello CBOR!" }