Fortune JSON API Serializer
This is a JSON API serializer for Fortune.js, which implements all of the features in the base specification, and follows the recommendations as much as possible.
$ npm install fortune fortune-http fortune-json-api
Usage
const http = require('http')
const fortune = require('fortune')
const fortuneHTTP = require('fortune-http')
const jsonApiSerializer = require('fortune-json-api')
const listener = fortuneHTTP(instance, {
serializers: [
[ jsonApiSerializer, options ]
]
})
const server = http.createServer((request, response) =>
listener(request, response)
.catch(error => { }))
server.listen(8080)
The options
object is as follows:
prefix
: hyperlink prefix. If this prefix starts with /
, then it will rewrite paths relative to the prefix. For example, a prefix valued /api
will handle requests at that route like /api/users/1
. Default: ""
(empty string).inflectType
: pluralize and dasherize the record type name in the URI. Can be Boolean to enable/disable all inflections or an object specifying each type in specific with unreferenced types set to default, ex: { faculty: false }
. Default: true
.inflectKeys
: camelize the field names per record. Default: true
.maxLimit
: maximum number of records to show per page. Default: 1000
.includeLimit
: maximum depth of fields per include. Default: 3
.bufferEncoding
: which encoding type to use for input buffer fields. Default: base64
.jsonSpaces
: how many spaces to use for pretty printing JSON. Default: 2
.jsonapi
: top-level object mainly used for describing version. Default: { version: '1.0' }
.castNumericIds
: whether to cast numeric id strings to numbers. Default: true
.
Internal options:
uriTemplate
: URI template string.allowLevel
: HTTP methods to allow ordered by appearance in URI template.
License
This software is licensed under the MIT license.