Skip to content

fortunejs/fortune-json-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fortune JSON API Serializer

GitHub Actions Workflow Status npm Version License

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')

// `instance` is an instance of Fortune.js.
const listener = fortuneHTTP(instance, {
  serializers: [
    // The `options` object here is optional.
    [ jsonApiSerializer, 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) =>
  listener(request, response)
  .catch(error => { /* error logging */ }))

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.

About

JSON API serializer for Fortune.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 14