Aller au contenu

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 app

Vous 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!|
00000015

Vous 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!" }

Voir aussi ​

Publié sous licence MIT.