json-schema-request
v0.4.0
Published
Make requests with json-hyper-schema references
Downloads
5
Maintainers
Readme
JsonSchemaRequest
Allows making requests based on json hyper schema endpoints. Currently a work in progress.
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 href
s if missing. If you prefer to use relative URLs for your href
this sets the server and path those relative URLs are attached to. |