Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
express-hateoas-links
Advanced tools
Readme
Extends express res.json
to simplify building HATEOAS enabled REST API's by appending links to JSON responses.
npm install --save express-hateoas-links
// send person object with HATEOAS links added
res.json(personObject, [
{ rel: "self", method: "GET", href: 'http://127.0.0.1' },
{ rel: "create", method: "POST", title: 'Create Person', href: 'http://127.0.0.1/person' }
]);
Optionally exclude/remove links based on rel value:
res.json(personObject, [
{ rel: "self", method: "GET", href: 'http://127.0.0.1' },
{ rel: "create", method: "POST", title: 'Create Person', href: 'http://127.0.0.1/person' }
], [ 'create' ]); // <- removes `create` link
The example below adds a self & create link to a JSON schema used to create a person. This allows the consuming application to understand what properties are required to create a Person and the destination URL to post to, removing the need for the application to hard code API links.
var express = require('express');
var app = express();
var hateoasLinker = require('express-hateoas-links');
// replace standard express res.json with the new version
app.use(hateoasLinker);
// standard express route
app.get('/', function(req, res){
// create an example JSON Schema
var personSchema = {
"name": "Person",
"description": "This JSON Schema defines the parameters required to create a Person object",
"properties": {
"name": {
"title": "Name",
"description": "Please enter your full name",
"type": "string",
"maxLength": 30,
"minLength": 1,
"required": true
},
"jobTitle": {
"title": "Job Title",
"type": "string"
},
"telephone": {
"title": "Telephone Number",
"description": "Please enter telephone number including country code",
"type": "string",
"required": true
}
}
};
// call res.json as normal but pass second param as array of links
res.json(personSchema, [
{ rel: "self", method: "GET", href: 'http://127.0.0.1' },
{ rel: "create", method: "POST", title: 'Create Person', href: 'http://127.0.0.1/person' }
]);
});
// express route to process the person creation
app.post('/person', function(req, res){
// do some stuff with the person data
});
You can set req.disableHATEOAS = false
within a controller or pass ?hateoas=false
to disable HATEOAS links.
{
"name": "Person",
"description": "This JSON Schema defines the parameters required to create a Person object",
"properties": {
"name": {
"title": "Name",
"description": "Please enter your full name",
"type": "string",
"maxLength": 30,
"minLength": 1,
"required": true
},
"jobTitle": {
"title": "Job Title",
"type": "string"
},
"telephone": {
"title": "Telephone Number",
"description": "Please enter telephone number including country code",
"type": "string",
"required": true
}
},
"links":[
{
"rel": "self",
"method": "GET",
"href": "http://127.0.0.1"
},
{
"rel": "create",
"method": "POST",
"title": "Create Person",
"href": "http://127.0.0.1/person"
}
]
}
git checkout -b my-new-feature
git commit -m 'Add some feature'
git push origin my-new-feature
You can run the unit tests by changing directory into the express-hateoas-links director within your node_modules folder, and run the following commands:
npm install // install modules dev dependencies
npm test // run unit tests
Please star the repo if you find this useful as it helps us priorities which open source issues to tackle first.
For change-log, check releases.
Licensed under MIT License © Orca Scan, the Barcode Scanner app.
FAQs
Extends express res.json to simplify building HATEOAS enabled REST API's
The npm package express-hateoas-links receives a total of 498 weekly downloads. As such, express-hateoas-links popularity was classified as not popular.
We found that express-hateoas-links demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.