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
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.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
This software is licensed under the MIT license.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4