3.1.7 • Published 5 years ago

fortune-micro-api v3.1.7

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

Fortune Micro API Serializer

Build Status npm Version License

This is a Micro API serializer for Fortune.js, which is compatible with the specification as of 2017-04-25.

$ npm install fortune fortune-http fortune-micro-api

Usage

const http = require('http')
const fortune = require('fortune')
const fortuneHTTP = require('fortune-http')
const microApiSerializer = require('fortune-micro-api')

const options = {
  entryPoint: 'http://example.com',
  externalContext: '/context.jsonld'
}

// `instance` is an instance of Fortune.js.
const listener = fortuneHTTP(instance, {
  serializers: [
    // The `options` object here is required.
    [ microApiSerializer, options ]
  ]
})

// The listener function may be used as a standalone server, or
// may be composed as part of a framework.
const server = http.createServer((request, response) =>
  // When an external context is set, it should be handled externally.
  (request.url.indexOf(options.externalContext) === 0 ?
    microApiSerializer.showExternalContext(response, options) :
    listener(request, response))
  .catch(error => { /* error logging */ }))

server.listen(8080)

The options object is as follows:

  • entryPoint: URI to the entry point. Required.
  • externalContext: refer to the @context instead of embedding. Recommended. This requires some additional setup, so it's disabled by default. This should be valued by a URI to the external context.
  • inflectType: convert record type name to PascalCase in the payload. Default: true.
  • reverseFields: An object keyed by field names, which should use the @reverse property.
  • contexts: An array valued by URIs to external contexts.

Inherited options:

  • bufferEncoding: which encoding type to use for input buffer fields.
  • maxLimit: maximum number of records to show per page.
  • includeLimit: maximum depth of fields per include.
  • uriBase64: encode URIs in base64 to discourage clients from tampering with the URI.
  • castId: try to cast string IDs to numbers if possible.

MessagePack

Instead of using JSON as a serialization format, it can optionally use MessagePack instead, with an unregistered media type application/x-micro-api. It has the advantage of serializing dates and buffers properly.

const microApiSerializer = require('fortune-micro-api')

// Alternative serializer with unregistered media type.
const microApiMsgPack = microApiSerializer.msgpack

License

This software is licensed under the MIT license.

3.1.7

5 years ago

3.1.6

5 years ago

3.1.5

6 years ago

3.1.4

7 years ago

3.1.3

7 years ago

3.1.2

7 years ago

3.1.1

7 years ago

3.1.0

7 years ago

3.0.1

7 years ago

3.0.0

7 years ago

2.2.1

7 years ago

2.2.0

8 years ago

2.1.6

8 years ago

2.1.4

8 years ago

2.1.3

8 years ago

2.1.2

8 years ago

2.1.1

8 years ago

2.1.0

8 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.4.1

8 years ago

1.4.0

8 years ago

1.3.0

8 years ago

1.2.8

8 years ago

1.2.7

9 years ago

1.2.6

9 years ago

1.2.5

9 years ago

1.2.4

9 years ago

1.2.3

9 years ago

1.2.2

9 years ago

1.2.1

9 years ago

1.2.0

9 years ago

1.1.4

9 years ago

1.1.3

9 years ago

1.1.2

9 years ago

1.1.1

9 years ago

1.1.0

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago