json-schema-request

0.4.0 • Public • Published

JsonSchemaRequest

Allows making requests based on json hyper schema endpoints. Currently a work in progress.

Stability:Experimental NPM Version Travis Issues

Commitizen friendly Semantic Release License Maintenance Downloads

Installation:

npm install json-schema-request

Usage:

example.js

import jsonSchemaRequest from 'json-schema-request';
 
const myPartialBlogPost = {
    id: 42,
    author: "marvin"
};
 
jsonSchemaRequest({
    schemaUrl: "http://www.example.com/blog-post.json",
    rel: "self",
    context: myPartialBlogPost
})
    .then(result => console.log);
 
// {
//     id: 42,
//     author: "marvin",
//     title: "Of diodes and doors",
//     body: "...down the left hand side..."
// }

blog-post.json

{
    "id": "http://www.example.com/blog-post.json",
    "type": "object",
    "properties": {
        "id": { "type": "number" },
        "author": { "type": "string" },
        "title": { "type": "string" },
        "body": { "type": "string" }
    },
    "required": [ "title", "author", "id" ],
    "links": [
        {
            "rel": "self",
            "href": "http://www.example.com/api/post/{id}",
            "method": "GET",
            "targetSchema": { "$ref": "#" }
        }
    ]
}

The schema for the json object passed to jsonSchemaRequest is available in schema/inputSchema.json. The options are documented below as well:

Option Required Description
schemaUrl Yes URL to load the schema from. References inside this schema that point to other files are also loaded, and inlined.
rel Yes Relationship name for link to request. This is defined in your schema.
context Context data to insert into urls (eg 'id' in example above).
data Data to send along with the request (eg the body for 'create' rels).
headers Header object to pass through to the request. (eg { "Content-Type": "application/json" })
schemaPrefix The URL to prefix on schema IDs if missing. If you prefer to use relative URLs for your schemaUrl, or id or $ref in your schemas, this sets the server and path those relative URLs are attached to.
serverRoot The URL to prefix on hrefs if missing. If you prefer to use relative URLs for your href this sets the server and path those relative URLs are attached to.

Package Sidebar

Install

npm i json-schema-request

Weekly Downloads

1

Version

0.4.0

License

MIT

Last publish

Collaborators

  • reactiveraven