CBOR
CBOR est un format binaire de sérialisation d’objets défini dans la RFC 8949. Compatible avec JSON, il convient aux communications réseau qui nécessitent des échanges de données efficaces, ainsi qu’aux environnements aux ressources limitées, comme les appareils IoT.
Voici un exemple utilisant le paquet cbor2 pour répondre au format CBOR :
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 appVous pouvez vérifier la réponse à l’aide de la commande suivante.
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!|
00000015Vous pouvez également vérifier que la réponse se décode en objet JSON dans le bac à sable CBOR.
plaintext
A1 # map(1)
67 # text(7)
6D657373616765 # "message"
6B # text(11)
68656C6C6F2043424F5221 # "hello CBOR!"json
{ "message": "hello CBOR!" }